这就是我现在所拥有的:
def checkPlayerCardInput(answer):
while True:
for x in range(len(player1Cards)):
if answer.lower() == player1Cards[x]:
return player1[x]
我不知道的是,如果用户拼错单词或完全输入不正确的内容,如何重复循环?
在这种情况下,player1Cards
等于5个字符串的列表。我只是尝试将answer
(之前由用户通过raw_input
输入)与其中一个字符串和return
回答(在这种情况下,是来自player1
列表的项目,其中包含返回的“卡片”的其余数据。
如果答案不正确,我希望循环从用户的新raw_input答案开始。
答案 0 :(得分:4)
要检查项目是否包含在列表中,请使用in
运算符。像这样:
if answer.lower() in player1CArds:
#...
使用while
循环继续询问raw_input
,直到您在列表中找到字符串为止。
答案 1 :(得分:0)
这样做你想要的吗?
def checkPlayerCardInput(answer):
while True:
for x in range(len(player1Cards)):
if answer.lower() == player1Cards[x]:
return player1[x]
answer = raw_input('incorrect answer!')
答案 2 :(得分:0)
else
关键字可用于您的情况。与for
结合使用时,在范围用尽而不退出循环(中断或返回)时执行else子句:
for x in range(len(player1Cards)):
if answer.lower() == player1Cards[x]:
return player1[x]
else:
# Here, your user input matches nothing.
但是,您可以使用in
的{{1}}关键字:
list
或相反,if answer.lower() in player1Cards:
# equivalent to your for loop
:
not in