#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, и я исправил это сразу после того, как опубликовал это.