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(),发现它真的是一个很神奇的函数。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步