我正在尝试将数字字符串转换为int,但我一直得到以下内容:
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()将字符串转换为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.")
答案 0 :(得分:1)
您从num = 0
开始。然后,您设置temp = num
,因此temp
为零。因此,while temp > 0
循环永远不会运行,因此rev
中没有添加任何内容。因此,当您尝试使用join
时,它只会加入一个空列表并生成一个空字符串。
如何解决此问题尚不清楚,因为您没有说出您希望代码执行的操作。
答案 1 :(得分:1)
num
为0,未输入while
。因此rev
是一个空字符串。