Почему я продолжаю получать неверную ошибку ввода относительно этого строкового оператора? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть синтаксическая ошибка, из-за которой я запутался в своем коде Python

deliveryValue= input("Is this order for delivery? Y/N")
float (DeliveryTime = 0)
str (zipcode=none)
float (DeliveryFee =0)
if deliveryValue == 'y' or 'Y':
    address = input ("what is the delivery address?")
    zipcode = input ("What zipcode is the address in?")
        if zipcode == 84041:
            DeliveryTime = 30
            DeliveryFee = 6.50
        else:
            DeliveryTime = 45
            DeliveryFee = 7.50
else:
    DeliveryFee = 0

, если zipcode == 84041: строка выходит с ошибкой, однако я попытался поместить '' и ""вокруг него и до сих пор есть такая же ошибка.Я правильно это пишу?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Несколько проблем:

  • Ваши назначения не должны быть заключены в конструктор типа.
  • Выражение в вашем условном выражении для оператора if всегда True потому что 'Y' всегда True.Используйте метод lower() для строковой переменной, если вы хотите сравнивать строки без учета регистра.
  • Оператор if для сравнения по почтовому индексу имеет отступ на один уровень глубже, чем должен.
  • Значение zipcode является строкой, поскольку оно является возвращаемым значением функции input().Поэтому вы должны сравнить его со строкой, а не с целым числом.

После устранения вышеуказанных проблем ваш код должен выглядеть следующим образом:

deliveryValue= input("Is this order for delivery? Y/N")
DeliveryTime = 0
zipcode = None
DeliveryFee = 0
if deliveryValue.lower() == 'y':
    address = input ("what is the delivery address?")
    zipcode = input ("What zipcode is the address in?")
    if zipcode == '84041':
        DeliveryTime = 30
        DeliveryFee = 6.50
    else:
        DeliveryTime = 45
        DeliveryFee = 7.50
else:
    DeliveryFee = 0
0 голосов
/ 30 ноября 2018

Попробуйте изменить выражение if на

if deliveryValue in 'yY':

, вы также можете использовать

if deliveryValue == 'y' or deliveryValue  == 'Y':
...