为什么我不断收到关于此字符串语句的错误输入错误?

时间:2018-11-30 19:04:50

标签: python if-statement syntax-error

我有一个语法错误,我在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

if邮政编码== 84041:该行出现错误,但是我尝试在其周围放置''和'“,但仍然存在相同的错误。我写的正确吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

尝试将if语句更改为

if deliveryValue in 'yY':

您也可以使用

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

答案 1 :(得分:0)

一些问题:

  • 您的分配不应包含在类型的构造函数中。
  • 您对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