Python 如何对照字符串列表检查原始输入?
以下是我目前的情况:Python 如何对照字符串列表检查原始输入?,python,python-2.7,Python,Python 2.7,以下是我目前的情况: def checkPlayerCardInput(answer): while True: for x in range(len(player1Cards)): if answer.lower() == player1Cards[x]: return player1[x] 我不知道的是,如果用户拼错了一个单词或输入了完全不正确的内容,如何重复循环 在这种情况下,player1Cards等于5个
def checkPlayerCardInput(answer):
while True:
for x in range(len(player1Cards)):
if answer.lower() == player1Cards[x]:
return player1[x]
我不知道的是,如果用户拼错了一个单词或输入了完全不正确的内容,如何重复循环
在这种情况下,player1Cards
等于5个字符串的列表。我只是尝试将答案
(用户之前通过原始输入
)与其中一个字符串匹配,然后返回该答案(在本例中,该答案是播放器1
列表中的项,其中包含返回的“卡”的其余数据)
如果答案不正确,我希望循环从用户新的原始输入答案开始。要检查列表中是否包含项目,请使用中的运算符。像这样:
if answer.lower() in player1CArds:
#...
使用while
循环不断请求原始输入
,直到在列表中找到字符串。要检查列表中是否包含项目,请使用in
运算符。像这样:
if answer.lower() in player1CArds:
#...
使用while
循环不断请求原始输入
,直到在列表中找到一个字符串。这是否符合您的要求
def checkPlayerCardInput(answer):
while True:
for x in range(len(player1Cards)):
if answer.lower() == player1Cards[x]:
return player1[x]
answer = raw_input('incorrect answer!')
这是你想要的吗
def checkPlayerCardInput(answer):
while True:
for x in range(len(player1Cards)):
if answer.lower() == player1Cards[x]:
return player1[x]
answer = raw_input('incorrect answer!')
else
关键字可用于您的案例。与
的
结合使用,当范围耗尽而不退出循环(中断或返回)时,执行else子句:
但是,您可以在列表的关键字中使用:
if answer.lower() in player1Cards:
# equivalent to your for loop
或者相反,不在
:
if answer.lower() not in player1Cards:
# Typo, or the user inputed a non-existing card
else
关键字可用于您的案例。与
的
结合使用,当范围耗尽而不退出循环(中断或返回)时,执行else子句:
但是,您可以在列表的关键字中使用:
if answer.lower() in player1Cards:
# equivalent to your for loop
或者相反,不在
:
if answer.lower() not in player1Cards:
# Typo, or the user inputed a non-existing card
对事实上,这很有效。我没有意识到我可以重新分配answer
变量,而不会在循环中导致错误。我会在期限届满时接受这个。是的。事实上,这很有效。我没有意识到我可以重新分配answer
变量,而不会在循环中导致错误。当时间限制到期时,我会接受这一点。为什么有两种不同的数据结构,player1
和player1Cards
?如果你解释一下你想做什么,我们可能会在数据结构方面帮助你。Player1包含“手”中每张牌的列表。player1Cards是一个字符串列表,与每手牌的“名称”相匹配。我现在意识到我的列表结构还不是很好,但我一直在使用这个程序作为练习,从简单的在线教程到实际制作一些有用的东西。为什么有两种不同的数据结构,player1
和player1Cards
?如果你解释一下你想做什么,我们可能会在数据结构方面帮助你。Player1包含“手”中每张牌的列表。player1Cards是一个字符串列表,与每手牌的“名称”相匹配。我现在意识到我的列表结构还不是很好,但我一直在使用这个程序作为练习,从简单的在线教程到实际制作一些有用的东西。