(ValueError: 基数10的无效整数文字)
total = {}
count = 0
while(count < 4):
_input = input()
count = count + 1
total[_input] = 0
for i in range(5):
_input2 = int(input())
total[_input] = total[_input] + _input2
print(total)
Virat,101,88,93,0,120
Rohit,50,100,30,140,80
Sky,10,20,30,40,50
Shreyas,100,0,0,100,0
期望的输出结果是:
{'Virat': 402, 'Rohit': 400, 'Sky': 150, 'Shreyas': 200}
这段代码在我的系统上运行得很好,但它显示了一个错误:
ValueError: invalid literal for int() with base 10
这是我在解决问题时遇到的情况。
1 个回答
1
我检查了一下你的代码,发现如果你一个一个地输入数据,它运行得很好。比如:
Virat
101
88
93
0
120
Rohit
50
..
但是如果你想一次性输入像 Virat,101,88,93,0,120
这样的数据,它会把这些值存成 {'Virat,10,20,30,40,50': 0}
。然后第二次输入是空的,当它执行 int('')
时,就会报错:ValueError: invalid literal for int() with base 10: ''
。
不过,如果你想一次性输入像 Virat,101,88,93,0,120
这样的数据,下面是修改过的代码:
total = {}
count = 0
while(count < 4):
_input = input()
count = count + 1
name = _input.split(',')[0]
runs = _input.split(',')[1:]
total[name] = 0
for run in runs:
total[name] = total[name] + int(run)
print(total)
这样你就可以像你展示的那样输入数据:
Virat,101,88,93,0,120
Rohit,50,100,30,140,80
Sky,10,20,30,40,50
Shreyas,100,0,0,100,0
然后你会得到像这样输出的结果:{'Virat': 402, 'Rohit': 400, 'Sky': 150, 'Shreyas': 200}
。