Оператор Python if для сравнения со строкой не работает

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

Я попытался переместить вещи и изменить операторы if на операторы else. но все же только половина, если это работает. что должно произойти, так это то, что пользователь вводит слово, если это слово = Далее, он удаляет первое лицо в этой строке. если пользователь вводит любое другое слово, кроме Next, оно добавляется в конец списка.

Пример ниже:

# This is just a line manager :D

print("")

Line = \["Bob" , "Steve" , "Michael"\]
print(Line)

print("")

#infinit loop

I = 0

while I < 1:

   print("Type the name of the person you want to add to the queue, or if you wanna remove the first person in the line, type 'Next'")

   print("")

   New = str(input())

   if New != "Next" or "next":

      Line.append(New)
      print(Line)

      continue

   if New = = "Next":

      Line.remove(Line\[0\])

      print(Line)

Будьте осторожны с операторами if: New != "Next" or "next" -> New != "Next" or New != "next".

Caridorc 13.02.2023 13:35

Пожалуйста, дайте описательный заголовок для вашего вопроса.

S.B 13.02.2023 13:35

Добро пожаловать в Stack Overflow. Пожалуйста, пройдите тур и прочитайте Как спросить - вы уже сделали две ошибки в названии (кажется, кто-то другой отредактировал заголовок для вас): не описали реальную проблему и говорили о себе. чем код. Обратите внимание, что это не дискуссионный форум.

Karl Knechtel 13.02.2023 13:37
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ошибка в этой строке:

if New != "Next" or "next":

Вторая половина, or "next", проверяет правдивость строки "next", которая верна, поскольку это непустая строка. Кроме того, она должна проверять, является ли ответ ни, ни, ни, ни или. Вместо этого сделайте так:

if New != "Next" and New != "next":

или еще аккуратнее:

if New not in ["Next", "next"]:

Но в этом случае (и при любом вводе данных пользователем) используйте это:

if New.lower() != "next":

который переводит пользовательский ввод в нижний регистр :)

Логика с != должна использовать and, а не or, согласно закону де Моргана. (Я добавил отдельную дублирующую ссылку, чтобы охватить этот материал.) В любом случае, пожалуйста, прочитайте Как ответить и не пытайтесь отвечать на вопросы, которые часто повторяются.

Karl Knechtel 13.02.2023 13:40

Другие вопросы по теме