ValueError:对于带有基数为10的int()的无效文字:'' - 字符串到int转换

时间:2014-03-28 18:02:05

标签: python string int

我正在尝试将数字字符串转换为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.")

2 个答案:

答案 0 :(得分:1)

您从num = 0开始。然后,您设置temp = num,因此temp为零。因此,while temp > 0循环永远不会运行,因此rev中没有添加任何内容。因此,当您尝试使用join时,它只会加入一个空列表并生成一个空字符串。

如何解决此问题尚不清楚,因为您没有说出您希望代码执行的操作。

答案 1 :(得分:1)

第一次迭代中的

num为0,未输入while。因此rev是一个空字符串。