python if elif_Python编程从入门到实践日记Day11

Python编程从入门到实践日记Day11

第4章 if语句(四)

1.使用if语句(二)

-使用多个elif代码块

可根据需要使用任意数量的elif代码块,例如,假设前述游乐场要给老年人打折,可再添一个条件测试,判断顾客是否符合打折条件。下面假设对于65岁(含)以上的老人,可以半价(即5美元)购买门票:

837498359fdd433f66ec8dbfec80edaf.png

这些代码大都未变。第二个elif代码块通过检查确定年龄不到65岁后,才将门票价格设置为全票价格—10美元。请注意,在else代码块中,必须将所赋的值改为5,因为仅当年龄超过65(含)时,才会执行这个代码块。

-省略else代码块

Python并不要求if-elif结构后面必须有else代码块。在有些情况下,else代码块很有用;而在其他一些情况下,使用一条elif语句来处理特定的情形更清晰:

761b191b877a64f66fed67ac1664e7b7.png

第三处elif代码块在顾客的年龄超过65(含)时,将价格设置为5美元,这比使用else代码块更清晰些。经过这样的修改后,每个代码块都仅在通过了相应的测试时才会执行。

else是一条包罗万象的语句,只要不满足任何if或elif中的条件测试,其中的代码就会执行,这可能会引入无效甚至恶意的数据。如果知道最终要测试的条件,应考虑使用一个elif代码块来代替else代码块。这样,你就可以肯定,仅当满足相应的条件时,你的代码才会执行。

-测试多个条件

if-elif-else结构功能强大,但仅适合用于只有一个条件满足的情况:遇到通过了的测试后,Python就跳过余下的测试。这种行为很好,效率很高,让你能够测试一个特定的条件。

然而,有时候必须检查你关心的所有条件。在这种情况下,应使用一系列不包含elif和else代码块的简单if语句。在可能有多个条件为True,且你需要在每个条件为True时都采取相应措施时,适合使用这种方法。

下面再来看前面的披萨店示例。如果顾客点了两种配料,就需要确保在其披萨中包含这些配料:

75d8b65e7758421979c91984b946d1ea.png

我们首先创建了一个列表,其中包含顾客点的配料,第一个if语句检查顾客是否点了配料蘑菇,如果点了就打印一条确认消息。第二处if语句检查配料腊香肠,不是elif或else语句,因此不管前一个测试是否通过,都将进行这个测试。第三个if代码检查顾客是否要求加芝士,不管前两个测试的结果如何,都会执行这些代码。每当这个程序运行时,都会进行这三个独立的测试。

在这个示例中,会检查每个条件,因此将在披萨中添加蘑菇并多加芝士:

1dc547869c12079e45581c4f9960a81e.png

如果像下面这样转而使用if-elif-else结构,代码将不能正确地运行,因为有一个测试通过后,就会跳过余下的测试:

60a1ed08347dad0c8e7d00b1add7bd6d.png

第一个测试检查列表中是否包含‘mushrooms’,它通过了,因此将在披萨中添加蘑菇。然而,Python将跳过if-elif-else结构中余下的测试,不再检查列表中是否包含‘extra cheese’和‘pepperoni’。其结果是,将添加顾客点的第一种配料,但不会添加其他的配料:

0240e3e56a19909788166ef4a844dc52.png

总之,如果你只想执行一个代码块,就使用if-elif-else结构;如果要运行多个代码块,就使用一系列独立的if语句。

如果大家有什么好的意见或建议,记得留言哦!

52845235fb69da3c820da2af3ad0bc03.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值