3.2.2 if-elif-else语句
if-elif-else语句主要用于处理多种条件的情况,从而解决现实生活中复杂的多重选择问题,其流程如图3-4所示。如果表达式1的值为真,则执行相应的语句块A;如果表达式1的值为假,则继续判断表达式2的值,如果表达式2的值为真,则执行语句块B;如果表达式2的值也为假,则继续判断表达式3的值;其余类推,直到所有的表达式都不满足(条件表达式的个数为1个或多个)为止,然后执行else后面的语句块。
图3-4 多分支结构流程图
书写格式:关键字if与表达式1之间用空格隔开,表达式1后接英文冒号;所有关键字elif均与关键字if左对齐,elif与后面的各个表达式之间用空格隔开,表达式后接英文冒号;关键字else与关键字if左对齐,后接英文冒号;所有语句块左对齐,即所有语句块中的全部语句均缩进4个空格,如图3-5所示。
图3-5 多分支结构书写格式
例如:
如果只考虑一种表达式成立或不成立的结果(即没有elif分支),则多分支的if结构转化为双分支的if结构。
例如:
在使用分支结构时,需要注意以下事项:
●表达式可以是任意类型,如5>3,x==y,x and y>z,3,0等。其中,3表示恒真(即True),而0表示恒假(即False)。
●可以仅有if子句构成单分支结构,但是else子句必须与if子句配对,不能出现仅有else子句没有if子句的情况。
●各语句块可以是一条或多条语句,如果是多条语句,则所有语句必须左对齐。
【例3-4】编写程序,从键盘输入一个整型数字,判断该数字是否为偶数。
分析:判断一个整数是否为偶数的方法是用该数字对2取余数,如果结果等于0,则该数字为偶数。
代码如下:
【例3-5】编写程序,从键盘输入三条边,判断是否能够构成一个三角形。如果能,则提示可以构成三角形;如果不能,则提示不能构成三角形。
分析:组成三角形的条件是任意两边之和大于第三边,如果条件成立,则能构成三角形;当条件表达式中的多个条件必须全部成立时,条件之间使用and运算符连接起来。
代码如下:
【例3-6】编写程序,调用随机函数生成一个1~100之间的随机整数,从键盘输入数字进行猜谜,给出猜测结果(太大、太小、成功)的提示。
分析:通过引入random模块,可以调用其中的randint(a,b)函数产生介于a和b之间的随机整数(即产生的随机数大于等于a且小于等于b),然后从键盘输入一个数字与该随机数进行比较,并输出判断结果。
代码如下: