Python 使用if语句和输入提供建议

Python 使用if语句和输入提供建议,python,Python,我正在做一个关于python的学校练习,它要求我给一个顾客20%的折扣,如果他们的购买价格在10美元到20美元之间。在21美元到30美元之间购买,可享受30%的折扣。每次我输入一个介于21和30之间的数字,它会给我20%和30%的折扣,我如何使它只给我30%的折扣。pyscrpiter在第2行中也提到了无序类型。如何解决此错误 productprice=input ('Enter price of product') if productprice > 10: di

我正在做一个关于python的学校练习,它要求我给一个顾客20%的折扣,如果他们的购买价格在10美元到20美元之间。在21美元到30美元之间购买,可享受30%的折扣。每次我输入一个介于21和30之间的数字,它会给我20%和30%的折扣,我如何使它只给我30%的折扣。pyscrpiter在第2行中也提到了无序类型。如何解决此错误

    productprice=input ('Enter price of product')
if productprice > 10:
        discount = productprice*0.80
if productprice> 20:
        discount = productprice*0.70
productprice=int(输入(“输入产品价格”)
如果productprice>20且productprice<31:
折扣=产品价格*0.70
elif productprice>10:
折扣=产品价格*0.80

您的输入必须转换为int或float,以便与数字进行比较。此外,使用elif可确保您只提供一次折扣

Python3.x版本

productprice = float(input('Enter price of product'))
if 10.0 <= productprice <= 20.0:
    afterDiscount = productprice * 0.80
elif 20.1 <= productprice <= 30.0:
    afterDiscount = productprice * 0.70
else:
    afterDiscount = productprice
print (afterDiscount)
productprice = float(raw_input('Enter price of product'))
注释

  • 在Python中,您可以检查数字是否在给定范围内,如下所示

    0 < num < 3
    
    0
    如果它在数学上有效,那么它将返回
    True
    False
    ,否则返回

  • 拥有
    else
    部分总是好的


  • 你应该考虑使用“else”。首先,如果您检查它是否落在较低的价格范围内,如果落在较低的价格范围内,则执行第一个if并忽略else。您还需要生成复合语句(
    productprice>=10,并且productprice Python不使用
    &&
    。在Python2.x中,您不需要
    float(输入(…)
    。理想情况下使用
    float(原始输入(…))
    …但是如果您坚持使用
    输入
    ,关键是让它为您进行解析,这样您就不需要在事后进行转换。另一方面,在Python 3.x中,
    print
    不是一个语句。@abarnert感谢您的建议:)我更新了答案。这是Python 3.x还是2.x?在3.x中,
    input
    返回一个字符串,不能将字符串与那样的数字进行比较。
    productprice = float(raw_input('Enter price of product'))
    
    0 < num < 3