我正在编写一个小循环,以阻止用户使用无效的输入;但是,现在,如果他们输入了错误的输入,它将不断要求输入。 baseLet,secLet,thirdLet和forLet都是其中包含字符的列表。该代码应能够告诉用户是否输入了不在任何列表中的任何字符,并让他们重新输入输入的字符。
enchan = list(input("Enter your runes:"))
for z in enchan:
if not(z in baseLet or z in secLet or z in thirdLet or z in forLet):
valid = False
x = 0
while not(valid):
x = 0
enchan = list(input("Invalid character entered. Enter your runes:"))
while not(x < len(enchan)):
valid = True
for z in enchan:
if not(z in baseLet or z in secLet or z in thirdLet or z in forLet):
valid = False
x += 1
请原谅,我是编码的新手,有可能出现愚蠢的错误,但这是我在这里学习的主要原因。
答案 0 :(得分:1)
这应该有效:
baseLet = ['a']
secLet = ['b']
thirdLet = ['c']
forLet = ['d']
valid = False
def is_valid(input_string):
for s in input_string:
if not(s in baseLet or s in secLet or s in thirdLet or s in forLet):
print('false input')
return False
print('valid input')
return True
while not valid:
enchan = list(input("Enter your runes:"))
valid = is_valid(enchan)
您可以使用一个函数来检查输入内容是否属于列表,并设置一个标志来停止while循环。