Python搬砖之旅(8th day):分支结构专题

@[TOC](Python搬砖之旅(8th day):分支结构专题)

Python搬砖之旅(8th day):分支结构专题

if 语句

if condition:
    statement

if 语句的含义很好理解,如果满足条件condition,则执行语句statement,否则什么都不做。
用图形来表示就是:
Python搬砖之旅(8th day):分支结构专题_第1张图片

注意:condition条件表达式,往往是由能够返回True或者False的逻辑判断表达式(如 and、or、not)、比较运算表达式(如 >、< 、==、 !=、 >=、 <=)、或某个变量、值表示。

一般来说,变量或值如果等于0,或者为空(None),则等同于False;
如果变量或值不等于0,或者为非空(not Null),则等同于True。

if … else … 语句

if condition:
    statement1
else:
	statement2

if … else … 语句的含义也很好理解,如果满足条件condition,则执行语句statement1,否则执行语句statement2。
用图形来表示就是:
Python搬砖之旅(8th day):分支结构专题_第2张图片

if … elif … else … 语句

if condition1:
    statement1
elif condition2:
	statement2
elif condition3:
	statement3
...
elif condition(n-1):
	statement(n-1)
else:
	statement(n)

if … elif … else … 语句的含义相对较为复杂,我们可以这么来理解:
如果满足条件condition1,则执行语句statement1
否则,在不满足条件condition1的情况下,但是满足条件condition2,执行语句statement2
以此类推,如果所有条件均不满足,则执行 else语句之后的语句statement(n)

用图形来表示就是:
Python搬砖之旅(8th day):分支结构专题_第3张图片

我们可以使用if … elif … else … 语句实现其他编程语言中的分支结构。注意,在Python语言中,没有switch分支结构,只能用if … elif … else … 语句代替。

案例:使用if … elif … else … 语句实现学生成绩等级判断。
将学生的等级划分为A、B、C、D四个等级。其中:
如果成绩在0-60分,D级,表示不及格;
如果成绩在60-74分,C级 ,表示中等;
如果成绩在75-89分,B级 ,表示良好;
如果成绩在90-100分,A级,表示优秀。
现在判断80分属于哪个等级:

score = 80
if score >=0 and score < 60:
    print(f"{score}对应的等级是D级,不及格。")
elif score >=60 and score < 75:
    print(f"{score}对应的等级是C级,中等。")
elif score >=75 and score < 90:
    print(f"{score}对应的等级是B级,良好。")
elif score >=90 and score <= 100:
    print(f"{score}对应的等级是A级,优秀。")
else:
    print("你输入的成绩不在正确范围内!")

>>> 80对应的等级是B级,良好。    

注意:
1, elif 相当于 else: if …, 就是说,elif 是在不满足上一个条件的情况下进行判断的;
2, if … elif … else … 语句,可以只有if … elif …,else并不是必须的。
3, elif 和 else 必须以if 为前提,不能脱离 if 而存在。

if 语句的嵌套

在很多情况下,我们需要使用到if 语句的嵌套,用来表示复杂的逻辑判断,可以使程序逻辑更为完整。
使用if 语句嵌套改写上面的成绩等级判断小程序:

score = int(input("请输入一名学生的成绩(0-100分),不要使用小数:"))
# 如果恶意输入范围外的成绩则提示重新输入
if score < 0 or score > 100:
    print("请重新输入!")
# else的情况就是score在0-100的范围内
else:
    # 先判断是否优秀
    if score >= 90:
        print(f"{score}对应的等级是A级,优秀。")
    # 再判断是否良好
    elif score >= 75:
        print(f"{score}对应的等级是B级,良好。")
    # 再判断是否中等
    elif score >= 60:
        print(f"{score}对应的等级是C级,中等。")
    # 不在以上区间的成绩就是不及格
    else:
        print(f"{score}对应的等级是D级,不及格。")   

提问:为什么elif 之后的条件判断,可以只写>=的情况,而不用写<的情况?
(提示:elif 等价于 else: if …)

if 语句与循环语句的结合

我们常见的程序逻辑结构包括三种:顺序、分支和循环。
循环结构和分支结构经常结合在一起使用,具体的案例将在循环这一章进行讲解,在此不再赘述。

你可能感兴趣的:(Python核心编程,python,数据结构)