在 python 中获得有限的输入

getting limited inputs in python

如您所见,用户在年龄输入中输入了 3 个以上的数字,这样是不正确的。 我想要的是在我的输入中获得有限的数字,我的意思是如果学生的数量是 3 那么如果用户为它写的超过 3 个我怎么 return 一个错误 height/weight/age ?

classAcounter=int(input("How many students? "))
classAlist=[]

height=input().split(" ")
weight=input().split(" ")
age=input().split(" ")

classAlist.append(height)
classAlist.append(weight)
classAlist.append(age)

print(classAlist)

#input:
3
175 170 183 188
70 68 83
18 19 18 19

output:
[['175', '170', '183', '188'], ['70', '68', '83'], ['18', '19', '18']]

您可以完成以下操作:

classAcounter=int(input("How many students? "))
classAlist=[]

height=input().split(" ")[:classAcounter]
weight=input().split(" ")[:classAcounter]
age=input().split(" ")[:classAcounter]

classAlist.append(height)
classAlist.append(weight)
classAlist.append(age)

print(classAlist)

#输入:

3
175 170 183 188
70 68 83
18 19 18 19

输出:

[['175', '170', '183'], ['70', '68', '83'], ['18', '19', '18']]

然而,这不能限制用户设置多个值,但这可以限制您使用用户输入的所有值。

方法如下:

classAcounter=int(input("How many students? "))
classAlist=[]

height = input().split(" ")
weight = input().split(" ")
age = input().split(" ")

if len(height)==len(weight)==len(age)==classAcounter:
    classAlist.append(height)
    classAlist.append(weight)
    classAlist.append(age)
else:
    print('Error: Inconsistent amount of info')

print(classAlist)



如果你想忽略多余的值,只追加想要的数量,这里有一个类似于Sanket的方法,只是我们会利用str.split()方法的第二个参数来优化效率:

classAcounter=int(input("How many students? "))
classAlist=[]

height = input().split(" ",classAcounter)[:classAcounter]
weight = input().split(" ",classAcounter)[:classAcounter]
age = input().split(" ",classAcounter)[:classAcounter]

classAlist.append(height)
classAlist.append(weight)
classAlist.append(age)

print(classAlist)

你看,如果我们不添加第二个参数,如果用户输入很多值,程序将首先拆分 所有 个值,即使我们,比如,只需要前 3.