我试图使用户仅从列表中选择值,并且如果他从列表中选择其他值,我希望代码再次询问正确的值
我的尝试:
accepted_values = [0, 1, 2, 3, 4]
while True:
print('Enter two numbers from the list :', accepted_values)
first_num = input("Enter first_num: ")
second_num = input("Enter second_num: ")
userinput = []
userinput.append(int(first_num))
userinput.append(int(second_num))
if userinput not in accepted_values:
print('please enter numbers from this range:', accepted_values)
continue
else:
break
但这会导致循环,即使我输入正确的数字也要我输入正确的值
您正在尝试检查是否[1, 2]
在accepted_values
列表中。整数1
和2
是SEPERATLY,但文字列表[1, 2]
不是。以下是解决方法:
accepted_values = [0, 1, 2, 3, 4]
while True:
print('Enter two numbers from the list :', accepted_values)
first_num = input("Enter first_num: ")
second_num = input("Enter second_num: ")
userinput = []
userinput.append(int(first_num))
userinput.append(int(second_num))
# Using "any"
if any(num not in accepted_values for num in userinput):
print('please enter numbers from this range:', accepted_values)
continue
else:
break
使用该any
语句,您可以对用户输入进行某种程度的迭代,同时检查其输入值是否在可接受范围内。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句