繁体   English   中英

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

[英]ValueError: invalid literal for int() with base 10: '' - string to int conversion

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

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

如何解决这个问题还不清楚,因为你没有说出你希望代码做什么。

第一次迭代中的num为0,并且未输入while 因此rev是一个空字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM