цикл python работает неправильно

#python

Вопрос:

      `difficulty = ""
     
      while difficulty != "e", difficulty != "m", difficulty != "h":
        difficulty = input("Select your difficulty: [e]asy, [m]edium, [h]ard: ").lower()`
 

Это отрывок из моей игры в палача. Когда я набираю любую из допустимых трудностей(«e», «m» и «h»), она продолжает печатать трудности. Какие-нибудь исправления?

Комментарии:

1. В первой строке перед «трудностью» есть обратная галочка, это намеренно?

2. Также это Python 2 или что-то в этом роде? Наличие запятых в подобном условии while является недопустимым синтаксисом в Python 3.8.

3. Вы можете использовать and или or вместо запятых

4. Попробуй while not difficulty in ('e','m','h')

Ответ №1:

@Samuel Zewdu Вот правильный код, который вы ищете:

 difficulty = ""

while (difficulty != "e") and (difficulty != "m") and (difficulty != "h"):
    difficulty = input(
        "Select your difficulty: [e]asy, [m]edium, [h]ard: ").lower()
    print(difficulty != "e" or difficulty != "m" or difficulty != "h")
print("Loop over.")
 

замените запятые на and потому что вы хотите перейти в цикл while только в том случае, если ни одно из условий не возвращает значение False, что возможно только с and помощью оператора.

Работает ли это решение для вас?

Комментарии:

1. @Adin Ackerman Нет, это в python 3, и я исправил это сразу после того, как опубликовал это.