为什么我的 python if 语句不起作用?

use*_*991 3 python python-3.x

我希望有一个人可以帮助我。当我运行下面的函数时,无论输入什么,都会打印规则。我看不出我做错了什么。

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.")
Run Code Online (Sandbox Code Playgroud)

pse*_*bic 8

您的 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.")
Run Code Online (Sandbox Code Playgroud)

布尔表达式不能像if something == x or y,你必须像if something == x or something == y

  • 在这种情况下,`if request.lower() == 'y':` 可能是最合适的。 (2认同)