(ValueError: 基数10的无效整数文字)

-1 投票
1 回答
40 浏览
提问于 2025-04-14 17:00
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}

撰写回答