无效的基数10整数字面量:
>>> n = ''.join(i for i in x if i.isdigit())
>>> n.isdigit()
True
>>> x.isdigit()
False
>>> previous = 0
>>> next = 100
>>> answer = 0
>>> for i in range(0,100):
... answer += int(n[previous:next])
... previous = next
... next += 100
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
ValueError: invalid literal for int() with base 10: ''
我为什么会遇到这个错误呢?你看,n是一个数字。
1 个回答
7
这里的 n
可能是一个数字,但在某个时候,你可能会超出 n
的长度,这样 n[previous:next]
就不会包含任何字符了。空字符串 ''
是无法转换成整数的,所以就会出现错误,错误信息是:invalid literal for int() with base 10: ''
,意思就是你试图把一个空的东西变成整数,这是不行的。
>>> int('')
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''