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

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

第4章 if语句(三)

1.使用if语句(一)

理解条件测试后,就可以开始编写if语句了。if语句有很多种,选择使用哪种取决于要测试的条件数。

-简单地if语句

假设有一个表示某人年龄的变量,而你想知道这个人是否够投票的年龄,可使用如下代码:

ca4c32d706a534a6fb77e753e2558f33.png

第二行代码Python检查变量age的值是否大于或等于18;答案是肯定的,因此Python执行缩进的print语句:

51e1e38b96c34115671e6fc0819b5b09.png

在if语句中,缩进的作用与for循环中相同。如果测试通过了,将执行if语句后面所有缩进的代码行,否则将忽略它们。

-    if-else语句

经常需要在条件测试通过了时执行一个操作,并在没有通过时执行另一个操作;在这种情况下,可使用Python提供的if-else语句。if-else语句块类似于简单的语句,但其中的else语句让你能够指定条件测试未通过时要执行的操作。

下面的代码在一个人够投票的年龄时显示与前面相同的消息,同时在这个人不够投票的年龄时也显示一条消息:

df90efc14de57a2f057201d989794a92.png

如果if语句处的条件测试通过了,就执行第一个缩进的print语句块;如果测试结果为False,就执行else处代码块。这次age小于18,条件测试未通过,因此执行else代码块中的代码:

4976b6de655bcf1ae2dab81fabf16256.png

上述代码之所以可行,是因为只存在两种情形:要么够投票的年龄,要么不够。if-else结构非常适合用于要让Python执行两种操作之一的情形。在这种简单的if-else结构中,总是会执行两个操作中的一个。

-    if-elif-else结构

经常需要检查超过两个的情形,为此可使用Python提供的if-elif-else结构。Python只执行if-elif-else结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在他后面的代码,并跳过余下的测试。

在现实世界中,很多情况下需要考虑的情形都超过两个。例如,来看一个根据年龄段收费的游乐场:

4岁以下免费;

4~18岁收费5美元;

18岁(含)以上收费10美元。

如果只使用一条if语句,如何确定门票价格呢?下面的代码确定一个人所属的年龄段,并打印一条包含门票价格的消息:

0e7400ee4b2891d5aa76fc599361fced.png

if处代码测试检查一个人是否不满4岁,如果是这样,Python就打印一条合适的消息,并跳过余下的测试。elif处代码行其实是另一个if测试,它仅在前面的测试未通过时才会运行。在这里,我们知道这个人不小于4岁,因为第一个测试未通过。如果这个人未满18岁,Python将打印相应的消息,并跳过else代码块。如果if测试和elif测试都未通过,Python将运行else处代码块中的代码。

在这个示例中,if代码处测试的结果为False,因此不执行其代码块。然而第二个测试的结果为True,因此将执行其代码块。输出为一个句子,向用户指出了门票价格:

9c9573c6eab7705ee5e401b96fab84e0.png

只要年龄超过17岁,前两个测试就都不能通过。在这种情况下,将执行else代码块,指出门票价格为10美元。

为让代码更简洁,可不在if-elif-else代码块中打印门票价格,而只在其中设置门票价格,并在他后面添加一条简单的print语句:

8c7a97b17315f07cc61cb1453e4920ba.png

这些代码的输出与前一个示例相同,但if-elif-else结构的作用更小,它只确定门票价格,而不是在确定门票价格的同时打印一条信息。除效率更高外,这些修订后的代码还更容易修改:要调整输出消息的内容,只需修改一条而不是三条print语句。

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

a2a70c1a9cb24359bf511b309b9df972.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值