Python输入10.1时int()函数报错无法转换为整数是什么原因
报错原因
- 首先
input()函数的返回值固定为字符串类型,你输入10.1后,变量a的实际值是字符串'10.1',并非数值型的浮点数10.1。 int()函数对不同类型入参的校验规则不同:- 若传入浮点数类型参数,
int()会直接截断小数部分返回整数,例如int(10.1)可以正常返回10 - 若传入字符串类型参数,要求字符串内容必须严格符合十进制整数的格式,仅可包含数字、可选的正负号前缀,不能包含小数点、字母等其他字符。
'10.1'包含小数点,不符合格式要求,因此会抛出ValueError类型的报错。
- 若传入浮点数类型参数,
修复方案
如果需要支持输入带小数的数值并转换为整数,可以先把字符串转成浮点数,再转整数,修改后的代码如下:
a = input() b = int(float(a)) print(b)
内容的提问来源于stack exchange,提问作者Sumit Singh
相关产品推荐
相关产品推荐

