Python:对输入列表进行验证

布尼

我想将值输入到my_list中。但是,值只能是整数。另外,如果输入了除“ q”以外的任何其他键,则输入应显示一条消息。但是,如果输入q,程序应停止输入并打印列表。

在此程序中,对q的验证无效。除整型外的任何其他值都会引发相同的消息“仅输入整型值”。即使输入为“ q”,也会发生这种情况。为什么会这样?对此有什么解决方案?

my_list = []

print("Enter q once done")

while True:
    try:
        my_list.append(int(input()))
    except:
        if input == 'q':
            break
        else:
            print("Give integer values only")
            continue

print(my_list)
亚历克斯

您对代码的最少修改将给出:

my_list = []

print("Enter q once done")

while True:
    try:
        s = input()
        if s == 'q':
            break
        my_list.append(int(s))
    except:
        print("Give integer values only")

print(my_list)

此代码有一个问题,它无法识别输入/键盘中断的结束。当仍然有一些输入时,从stdin读取行可能会更好:

import sys
my_list = []

print("Enter q once done")

for line in sys.stdin:
    if line == 'q\n':
        break
    try:
        my_list.append(int(line))
    except ValueError:
        print("Give integer values only")

print(my_list)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章