ValueError:无效的字符串转换为int(),基数为10:

0 投票
2 回答
1731 浏览
提问于 2025-04-18 00:21

我正在尝试把一个数字字符串转换成整数,但我总是遇到以下问题:

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 的时候,它只是把一个空的列表连接起来,结果就是一个空字符串。

怎么解决这个问题并不明确,因为你没有说明你想让代码做什么。

撰写回答