存储用户输入的值错误整数到Python中的数组中

时间:2018-05-24 22:13:50

标签: python python-3.x

我正在为我的编程类创建一个应用程序,但我无法让它正常运行。本质上,应用程序应该从用户获取8个数字并将它们存储在一个数组中,然后添加这些数字。但是,如果用户没有提供号码,或按Q,程序应该停止。

userNumberList = []
counter = 0
while counter < 8:

    try:
        userNumber = int(input("Welcome! Please provide numbers or press q to quit. "))
    except ValueError:
        print("Not a number. Closing application.")
        break
    else:
        if userNumber == 'q':
            break
        else:
            userNumberList.append(int(userNumber))
            counter += 1

print(sum(userNumberList))

这是我在提示符中输入字符串而不是数字时得到的错误:

userNumber = int(input("Welcome! Please provide numbers or press q to quit. "))
ValueError: invalid literal for int() with base 10:

2 个答案:

答案 0 :(得分:2)

试试这个: 在检查q之前不要转换为int。

for %%A

答案 1 :(得分:0)

请勿立即将输入转换为int。无论如何,你正在处理它。

并且input将输入评估为python代码。请改用raw_input。这个答案可能会有所帮助Python 2.7 getting user input and manipulating as string without quotations

userNumber = raw_input("Welcome! Please provide numbers or press q to quit. ")

更改此行可修复程序。