Почему срабатывает мое утверждение «если»? - PullRequest
0 голосов
/ 08 февраля 2019

Это мой первый пост, поэтому я прошу прощения, если я что-то делаю неправильно.

В настоящее время я пишу простую программу для класса колледжа.Инструкции для этой конкретной части гласят:

Значение записи ДОЛЖНО быть «1», или «2», или «3».Есть разные способы проверить это.

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

Теперь, когда я запрашиваю пользователя ввести выбор (скажем, они вводят «1»), он думает, что этоневерный ввод.

Лично я считаю, что ответ должен принимать значение int, но в инструкциях сказано, что это не должно.Я что-то упустил здесь?

Я пытался редактировать код с разными отметками ' и ".Я думаю, что я могу сделать небольшую синтаксическую ошибку, но я не могу указать на это пальцем.

cont= str("y")
cart = int(0)
item_total = int(0) 
order_total= float(0)

cont=input("Would you like to place an order? ")
while(cont.lower() == "y"):
  print("Order for John Doe")
  print("1. Savannah")
  print("2. Thin Mints")
  print("3. Tagalongs")
  item_n=input("Please choose a flavor ")
  if(item_n != "1" or item_n != "2" or item_n != "3"):
    print("Invalid entry, please try again")
  else:
    new_item=int(input("How many would you like (1-10)"))

Я ожидаю, что если вы введете 1, 2 или 3, он попадет в другое гнездо, но это не так.Я также могу при необходимости опубликовать больше инструкций профессора.

Ответы [ 3 ]

0 голосов
/ 08 февраля 2019

Вы должны использовать это

item_n=int(input("Please choose a flavor "))

вместо этого

item_n=input("Please choose a flavor ")

, поскольку функция ввода принимает строки, поэтому вам нужно преобразовать ее в int

и использовать ANDвместо ИЛИ в операторе if

0 голосов
/ 08 февраля 2019

попробуйте это:

cont= str("y")
cart = int(0)
item_total = int(0)
order_total= float(0)

cont=input("Would you like to place an order? ")
while(cont.lower() == "y"):
  print("Order for John Doe")
  print("1. Savannah")
  print("2. Thin Mints")
  print("3. Tagalongs")
  item_n=input("Please choose a flavor ")

  if(item_n not in ["1","2","3"]):
    print("Invalid entry, please try again")
  else:
    new_item=int(input("How many would you like (1-10)"))
0 голосов
/ 08 февраля 2019

Вы должны использовать AND, а не OR.Потому что это не должно 1 И не 2 И не 3 для ошибки.

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