【发布时间】:2014-09-02 01:36:06
【问题描述】:
运行代码第 49 行时出现此错误,在 total_energy last_digit+=int(dig) ValueError: invalid literal for int() with base 10:'
def total_energy(data):
last_digit=0
lines= data.split('\n')
for line in lines:
if len(line)>6:
your_digits=line[-15:].split(',')
for dig in your_digits:
last_digit+=int(dig)
print last_digit
我也试过 float 但同样的错误。 http://pastebin.com/1UpzeAgD 这是代码正在处理的数据。 任何帮助都会很棒!
【问题讨论】:
-
您正在尝试将非整数字符串转换为整数。例如,如果您尝试执行
int('a'),您将收到错误“Invalid literal for int with base 10”。检查 your_digits 并打印出来。 -
提示:当您尝试使用
int("")将空字符串转换为整数时会发生什么? -
您应该使用
csv模块来解析逗号分隔值的文件;) -
做
try: last_digit += int(dig)//except: print your_digits并发布打印的内容 -
我发现亚当说它得到一个空字符串,我认为错误在于 'your_digits=line[-15:].split(',')' 部分。我对csv模块也不熟悉
标签: python