我已经使用while循环接近我自己的问题,如果函数和try / except,但还没有达到预期的结果。
这是我最近尝试过的方法:
Surname2 = input('\nSurname:')
while Surname2 != type('a'): #2
print('\nPlease define Surname only in letters')
Surname2 = input('\nSurname:')
break
我在这里遇到的错误是它继续循环,不接收字符串作为字符串或接收数字作为字符串。
我的目标是让用户只能选择提供的选项或所需的对象类型。
答案 0 :(得分:0)
这是使用Python的一个例子。获取初始用户响应,然后使用while循环继续获取响应,直到他们输入有效响应。
Gender2 = input('Gender (M/F):')
while (Gender2 != "M" and Gender2 != "F"):
Gender2 = input('Gender (M/F):')
我不是Python编码器,因此我的代码可能会关闭,但这可能会让您对如何执行此操作有所了解。我通常使用PHP或PERL。
答案 1 :(得分:0)
以下功能可以做你想要的。
def get_input(message, choices):
assert type(message) == type("string"), "Message must be a string"
assert type(choices) == type([]), "Choices must be an array"
choice = ""
out = message + " (" + "/".join(choices) + "): "
while True:
c = input(out)
if c in choices:
break
else:
print "Please enter a valid choice"
return c
简单地称之为:
get_input("Gender", ["M","F"])
一些测试电话:
Gender (M/F): asdf
Please enter a valid choice
Gender (M/F): 234
Please enter a valid choice
Gender (M/F): 1
Please enter a valid choice
Gender (M/F): 534
Please enter a valid choice
Gender (M/F): zxcv
Please enter a valid choice
Gender (M/F): Ff
Please enter a valid choice
Gender (M/F): Mm
Please enter a valid choice
Gender (M/F): m
Please enter a valid choice
Gender (M/F): f
Please enter a valid choice
Gender (M/F): M
'M'