Python中int()強制類型轉換


今天在一個Python學習交流群中發現了一個有趣的類型轉換。

a=12.8
print(type(12.8))
print(int(12.8))

運行結果很明顯:

<class 'float'>
12

接下來就是有些疑惑的地方了。

a = input("input:")
print(type(a))
print(int(a))

不同的輸入有不同的輸出結果,當輸入小數時,會報錯;當輸入整數時卻可以正常運行。

input:12.8
<class 'str'>
Traceback (most recent call last):
  File "D:/PycharmProject/Study/Chapter3.py", line 66, in <module>
    print(int(a))
ValueError: invalid literal for int() with base 10: '12.8'
input:12
<class 'str'>
12

我和朋友(我們只是菜鳥相互出主意那種)想到的方法是:

a = input("input:")
print(type(a))
print(int(float(a)))

將類型進行兩次轉換,得到了想要的結果:

input:12.8
<class 'str'>
12

群里也有人給出了更好的辦法:

a = eval(input("input:"))
print(type(a))
print(int(a))

得到的結果:

input:12.8
<class 'float'>
12

通過搜索eval(),發現它真的是一個很神奇的函數。

python eval的妙用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM