(ValueError:以 10 为基数的 int() 的文字无效)

问题描述 投票:0回答:1
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

预期输出:

{“维拉特”:402,“罗希特”:400,“天空”:150,“Shreyas”:200}

代码在我的系统上运行得很好,但显示错误

ValueError:以 10 为基数的 int() 的文字无效

我在哪里解决问题

python literals
1个回答
0
投票

如果您一一输入,我检查了您的代码运行良好。喜欢,

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}

© www.soinside.com 2019 - 2024. All rights reserved.