Как использовать несколько условий в операторе if - PullRequest
0 голосов
/ 30 октября 2019
elif(mud == 1 and game_select == 'Mud + Fire' or game_select == 'Fire + Mud'):
        do something

Когда game_select == 'Mud + Fire', он не запускается, если mud! = 1, но работает независимо от того, когда game_select == 'Fire + Mud'.

Ответы [ 2 ]

3 голосов
/ 30 октября 2019

Попробуйте, вам нужно правильно обернуть оператор and.

elif(mud == 1 and (game_select == 'Mud + Fire' or game_select == 'Fire + Mud')):
      do something
0 голосов
/ 30 октября 2019

Python оценивает or, прежде чем он оценивает and - это означает, что он читает ваше утверждение как «если грязь равна 1 и строка соответствует грязи и огню, true. Или, если строка соответствует огнюи грязь, правда. "

Вы можете обойти это, правильно разделив ваши утверждения с круглыми скобками:

elif(mud == 1 and (game_select == 'Mud + Fire' or game_select == 'Fire + Mud')):
        do something

Это читается как" если грязь один, и строка соответствует огонь игрязь или грязь и огонь, правда. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...