Цикл с условием продолжения питона с многократными условиями

Кто-либо может помочь относительно того, почему мой цикл с условием продолжения не работает? Это вынуждает пользователя выбрать или 1, 2 или 3, и не позволяет им продолжиться, однако независимо от того, вставляете ли вы 1, 2 или 3, это всегда говорит, что вы ввели различный номер, и так говорит, "Пожалуйста, выберите уровень 1, 2 или 3"

level = input("Enter your level by typing 1, 2 or 3\n")
int(level)

levelSelect = 1
while levelSelect == 1:
   if level != int(1) or level != 2 or level != 3:
      level = input("Please choose level 1, 2 or 3\n")
      int(level)
   else:
      print("You have selected level", level)
      levelSelect = 0
0
Необходимо измениться "или" на "и" в вашем если заявление. Это будет всегда терпеть неудачу потому что уровень can' t быть 1 2 и 3.
добавлено автор Triton Man, источник
Необходимо измениться "или" на "и" в вашем если заявление. Это будет всегда терпеть неудачу потому что уровень can' t быть 1 2 и 3.
добавлено автор Triton Man, источник
Как другое примечание стороны, интервал (1) всегда способен быть замененным 1 .
добавлено автор mgilson, источник
... Если you' ve, сделанные что-то глупое как, снова переплетают имя интервал .
добавлено автор Karl Knechtel, источник
... Если you' ve, сделанные что-то глупое как, снова переплетают имя интервал .
добавлено автор Karl Knechtel, источник

6 ответы

Линия , интервал (уровень) не делает то, что вы думаете, что это делает. Это создает целое число из последовательности и прибыль это. Это не работает в месте. Из-за этого, когда вы добираетесь до вашего , если заявление, вы сравниваете последовательность с целыми числами, которая всегда неравна.

Вы, вероятно, хотите:

level = int(level)

Как примечание стороны, условие могло также быть написано, используя в оператор:

if level in (1,2,3):
   print("level is ...")
else:
   print("pick again!")
   #other code ...
4
добавлено

Линия , интервал (уровень) не делает то, что вы думаете, что это делает. Это создает целое число из последовательности и прибыль это. Это не работает в месте. Из-за этого, когда вы добираетесь до вашего , если заявление, вы сравниваете последовательность с целыми числами, которая всегда неравна.

Вы, вероятно, хотите:

level = int(level)

Как примечание стороны, условие могло также быть написано, используя в оператор:

if level in (1,2,3):
   print("level is ...")
else:
   print("pick again!")
   #other code ...
4
добавлено

Посмотрите ответ mgilson относительно, назначают уровень в качестве целого числа, но ваша логика в решении, если 'уровень' законен, также неправильная.

Изменение:

if level != int(1) or level != 2 or level != 3:

для:

if level not in (1,2,3)
1
добавлено
Почему вы говорите, что логика неправильная? - Стиль isn' t идеал, но я don' t думают, что я вижу проблему с логикой.
добавлено автор mgilson, источник
Извините, да я был неправ использовать неправильно.
добавлено автор Jdog, источник

Посмотрите ответ mgilson относительно, назначают уровень в качестве целого числа, но ваша логика в решении, если 'уровень' законен, также неправильная.

Изменение:

if level != int(1) or level != 2 or level != 3:

для:

if level not in (1,2,3)
1
добавлено
Почему вы говорите, что логика неправильная? - Стиль isn' t идеал, но я don' t думают, что я вижу проблему с логикой.
добавлено автор mgilson, источник
Извините, да я был неправ использовать неправильно.
добавлено автор Jdog, источник

Я думаю, что это - то, к чему вы хотите (опоры с Инбэр Роуз)

def get_level():
    while True:
        level = int(input("Enter your level by typing 1, 2 or 3\n"))
            if level in [1, 2, 3]:
                return level
0
добавлено
почему бы не помещать все это в цикл с условием продолжения? pastebin.com/ArVpMNwF: определение choose_level (): в то время как Верный: уровень = интервал (вход ("Входят в ваш уровень, печатая 1, 2 или 3\n")), если уровень в [1, 2, 3]: возвратите уровень
добавлено автор Inbar Rose, источник

mgilson указал на основную проблему здесь, однако я сделаю предложение, чтобы улучшить ваш код.

while True:
    level = input('Enter level: ')
    if level not in ('1','2','3'):
        print('Try again!\n')
    else:
        print('You chose level ', level)
        break
0
добавлено
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community