需要在if语句中嵌套if语句的指导

时间:2018-12-08 02:05:11

标签: python if-statement

为了给您一些背景信息,我正在做的项目是根据用户的输入创建帐单,如果用户希望在10天内付款,则项目的一部分会概述折扣。

我们的老师说我们必须在项目中嵌套if语句,但是我不确定为什么或如何。

我错过了嵌套课程,而且我不知道如何成功地执行if语句,而且我在网上看到的所有内容都超出了我的技能水平,而且我看不到我的代码出了什么问题。

#finding out the potential discount for paying within 10 days

if pay == "no":
    discount = 0

    if pay == "yes" and firstBill > 100 and firstBill < 200:
        discount = (firstBill * 0.015)

    elif pay == "yes" and firstBill > 200 and firstBill < 400:
        discount = (firstBill * 0.03)

    elif pay == "yes" and firstBill > 400 and firstBill < 800:
        discount = (firstBill * 0.04)

    elif  pay == "yes" and firstBill > 800:
        discount = (firstBill * 0.05)

    else:
        print("error")

else:
    print("error")

1 个答案:

答案 0 :(得分:2)

您的意思是这样的吗?第一个if检查pay是否为"no",并跳过其余代码。 elif pay == "yes":下的所有内容仅在pay"yes"的情况下执行。

if pay == "no":
    discount = 0
elif pay == "yes":
    if 100 <= firstBill < 200:
        discount = (firstBill * 0.015)
    elif 200 <= firstBill < 400:
        discount = (firstBill * 0.03)
    elif 400 <= firstBill < 800:
        discount = (firstBill * 0.04)
    elif firstBill >= 800:
        discount = (firstBill * 0.05)
    else:
        print("error")
else:
    print("error")

顺便说一句,您可以像x < y < z那样链接比较运算符。另外,您的代码会为“完全”或“完全” 400输出“错误”,依此类推。我以为那是意料之外的,并且已经解决了。

您还可以使用不同的方式编写if语句:

if pay == "yes":
    if 100 <= firstBill < 200:
        discount = (firstBill * 0.015)
    elif 200 <= firstBill < 400:
        discount = (firstBill * 0.03)
    elif 400 <= firstBill < 800:
        discount = (firstBill * 0.04)
    elif firstBill >= 800:
        discount = (firstBill * 0.05)
    else:
        print("error")
elif pay == "no":
    discount = 0
else:
    print("error")

它将完全相同。