我希望有人可以帮助我。当我运行以下功能时,无论输入什么,都会打印规则。我看不出我做错了什么。
def check_rules():
while True:
request = input("\nWould you like to know the rules? (y/n) ")
if request == "y" or "Y":
print("""
1. Each player takes it in turn to roll a dice.
2. The player then turns over a card with the same
number as the number rolled to see how many ladybirds
there are (0-3).
3. The player keeps the card.
4. If a player rolls a number that is not on an unclaimed
card, play continues to the next player.
5. Play continues until there are no more cards.
6. The player with the most number of ladybirds wins.""")
break
elif request == "n" or "N":
break
else:
print("\nI'm sorry, I didn't understand that.")
答案 0 :(得分:4)
您的if语句形式不正确:
def check_rules():
while True:
request = input("\nWould you like to know the rules? (y/n) ")
if request in ["y","Y"]:
print("""
1. Each player takes it in turn to roll a dice.
2. The player then turns over a card with the same
number as the number rolled to see how many ladybirds
there are (0-3).
3. The player keeps the card.
4. If a player rolls a number that is not on an unclaimed
card, play continues to the next player.
5. Play continues until there are no more cards.
6. The player with the most number of ladybirds wins.""")
break
elif request in ["n","N"]:
break
else:
print("\nI'm sorry, I didn't understand that.")
布尔表达式不能与if something == x or y
类似,您必须将其说明为if something == x or something == y
答案 1 :(得分:0)
if
语句无法确定请求是等于y
还是Y
。如果确定request == "y"
的布尔值,则可能为false。如果它为假,则确定"Y"
的布尔值。由于非空字符串的计算结果为True request == "y"
或"Y"
始终为真。