ValueError:无效的字符串转换为int(),基数为10:
我正在尝试把一个数字字符串转换成整数,但我总是遇到以下问题:
Traceback (most recent call last):
File "C:/Python34/Euler36.py", line 16, in <module>
rev = int(rev)
ValueError: invalid literal for int() with base 10: ''
我查看了几个关于类似错误的讨论,但没有发现有人遇到空字符串的问题:''
我只是用 ''.join() 把列表连接成一个字符串,然后想用 int() 把这个字符串转换成整数。结果似乎不行。以下是我的代码:
num = 0
temp = 0
add_digit = 0
rev = []
length = 100 #All numbers less than this
while num < length:
temp = num
rev = []
while temp > 0:
add_digit = temp % 10
temp /= 10
temp = int(temp)
rev.append(str(add_digit))
rev = ''.join(rev)
rev = int(rev)
print(rev)
num += 1
print("Done.")
2 个回答
1
第一次循环时,num
的值是 0,所以你的 while
循环没有被执行。因此,rev
这个变量是一个空字符串。
1
你一开始把 num = 0
,然后把 temp = num
,所以 temp
也是零。这样一来,你的 while temp > 0
循环就不会执行,因为条件不成立,所以 rev
里什么也不会被加进去。等你用 join
的时候,它只是把一个空的列表连接起来,结果就是一个空字符串。
怎么解决这个问题并不明确,因为你没有说明你想让代码做什么。