使用if语句和inpu提供建议

2024-03-28 18:10:22 发布

您现在位置: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

Tags: of类型inputif错误价格discount数字
3条回答

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
    

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

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

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可以确保只给一个折扣

你应该考虑使用“else”。首先,如果您检查它是否在较低的价格范围内,如果它在较低的价格范围内,它将执行第一个if并忽略else。您还需要生成复合语句(productprice >= 10 and productprice <= 20)。我不知道python如何处理读取输入,但是您可能需要将字符串转换为整数来修复第2行错误。你知道吗

相关问题 更多 >