当前位置:   article > 正文

ValueError: invalid literal for int() with base 10: '123a'

valueerror: invalid literal for int() with base 10

出错语句 ValueError: invalid literal for int() with base 10: ‘123a’

问题解决思路:
(1)问题分析 首先对于语句的错误大概意思为 值错误,对于int()类型进行无效的迭代。‘:’后面的为输入’xxx’导致值迭代出现错误的原因 ;
(2)解决办法 寻找可进行int()类型转换,了解到int()只能转化由纯数字组成的字符串。(如下图1)错误示例
图1 错误示例
(3)解决方案
1:分析对值进行int()类型的强制转换是否是必须的,若无关,则可以将int()类型删去
2:当输入的字符型中有小数点时(如图2),如下图‘12.3’,或者另一种‘[1,2,3,4]’数组形式。可以通过eval()函数,可以将字符串str当成有效的表达式来求值并返回计算结果。

对于包含小数点的字符,另外一种解决方案 ,首先利用float将其变成浮点型,然后进行强制int()变换

在这里插入图片描述
图2 当字符传含有小数点时
改正结果:

a=‘12.3’ #输入的为带小数点的数 类型str
type(a)
<class ‘str’>

b=eval(a) #通过eval()进行将str内容进行有效的内容进行返回
type(b)
<class ‘float’>

print(b) #得到浮点型数据 12.3
12.3

print(int(b)) #进行强制int型转换
12

c=float(a)
print( c)
12.3

type( c)
<class ‘float’>

print(int( c))
12

eval()函数的使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/911950
推荐阅读
相关标签
  

闽ICP备14008679号