如何处理用户输入并将其转换为int

问题描述 投票:0回答:2
total=0
while True:
    
    number= int(input('enter nam: \n'))
    
    if number=='done':
        break
    
    total=number+total
    
print(total)
      File "d:\python\lo.py", line 4, in <module>
    number= int(input('enter nam: \n'))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: 'done'
PS D:\python>  

问题是,您可以从角色中获取一个数字,但在“完成”一词之后,程序停止要求用户输入并给出总结果。

我的问题是,每次我只输入输入时都会出现两个错误,而当我输入 int(input) 时,它根本不会相加

python
2个回答
5
投票

您直接尝试将用户输入转换为整数值。您应该在转换之前检查它是否确实是数字输入

total = 0

while True:
    number = input('enter number: \n')

    if number.isnumeric():
        total += int(number)
    elif number == 'done':
        break
    else:
        print("Wrong input, try again.")

print(total)

3
投票

您的问题是您正在尝试将字符串解析为 int。 你可以做这样的事情:

total=0
while True:
    
    number= input('enter nam: \n')
    
    if number=='done':
        break
    else:
        total=int(number)+total
    
print(total)
© www.soinside.com 2019 - 2024. All rights reserved.