|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
复制代码 |
|