为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕森王 2021-09-11 13:24:51
为您提供一些背景信息,我正在做的项目是根据用户的输入创建账单,如果用户愿意在 10 天内付款,该项目的一部分概述了折扣。我们的老师说我们必须在我们的项目中嵌套 if 语句,但我不确定为什么或如何嵌套。我错过了嵌套课程,我不知道如何成功实现 if 语句,我在网上看到的一切都超出了我的技能水平,而且我不知道我的代码哪里出了问题。#finding out the potential discount for paying within 10 daysif 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 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

你的意思是这样的吗?第一个if检查是否pay是"no"并跳过其余的代码。下的所有elif pay == "yes":内容仅在payis 时执行"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. 此外,您的代码会为 EXACTLY 200 或 EXACTLY 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")

它的工作原理完全相同。


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信