使用if语句和使用输入的建议

时间:2013-10-05 03:12:56

标签: python

我正在做一个关于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

4 个答案:

答案 0 :(得分:6)

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)

Python2.x版

productprice = float(raw_input('Enter price of product'))

备注

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

    0 < num < 3
    

    如果它在数学上有效,那么它将返回TrueFalse否则。

  2. 拥有else部分总是好的。

答案 1 :(得分:2)

productprice = float(raw_input('Enter price of product '))

if  30 >= productprice >= 21:
        productprice *= 0.70
elif  20 >= productprice >= 10:
        productprice *= 0.80

print(productprice)

您的输入必须转换为int或float才能将其与数字进行比较。此外,使用elif确保您只提供一个折扣

答案 2 :(得分:2)

你应该考虑使用“其他”。首先,如果你检查它是否属于较低的价格范围,如果它确实执行第一个if而忽略其他。您还需要复合语句(productprice >= 10 and productprice <= 20)。我不知道python如何使用读取输入,但您可能需要从String转换为整数以修复第2行错误。

答案 3 :(得分:1)

productprice=int(input ('Enter price of product'))
if productprice > 20 and productprice < 31:
    discount = productprice*0.70
elif productprice> 10:
    discount = productprice*0.80