在 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.
如您所见,用户在年龄输入中输入了 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.