马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Python FAQ 053 关于 int() 的转化问题
问题
num = int(input('请输入一个数字:'))
print(num)
这个程序,我输入一个小数(例如 3.5)就会报错,难道 int() 不能转化小数吗?
解答
int() 可以把字符串或者浮点数转化为整型。
当转化字符串时,字符串内必须是纯数字才能转化成功。例如:
>>> int('1')
1
>>> int('a') # 转化失败
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
int('a') # 转化失败
ValueError: invalid literal for int() with base 10: 'a'
>>> int('2.5') # 转化失败,不能转化浮点数字符串
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
int('2.5') # 转化失败,不能转化浮点数字符串
ValueError: invalid literal for int() with base 10: '2.5'
当转化浮点数时做 “截断小数部分处理”,例如:
>>> int(5.2) # 截去小数部分 .2
5
>>> int(-5.9) # 截去小数部分 .9
-5
而你输入的 '3.5' 不是纯数字字符串,所以会报错。
想转化一个浮点数字符串应该使用 float() :
num = float(input('请输入一个数字:'))
print(num)
|