hello,这里是Token_w的博客,欢迎各位的阅读点赞评论
今天给大家带来的是Python程序的控制结构,希望对大家有多帮助
整理不易,希望得到您的认可与点赞! 感谢!
知识点
- 程序的三种控制结构
- 程序的分支结构: 单分支结构、二分支结构、多分支结构
- 程序的循环结构: 遍历循环、无限循环、break和continue循环控制
- 程序的异常处理: try-except
知识导图
1、程序的基本结构
1.1 程序的流程图
程序流程图用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,它是程序分析和过程描述的最基本方式。
流程图的基本元素包括7种:
起止框:表示程序逻辑的开始或结束;
判断框:表示一个判断条件,并根据判断结果选择不同的执行路径;
处理框:表示一组处理过程,对应于顺序执行的程序逻辑;
输入输出框:表示程序中的数据输入或结果输出;
注释框:表示程序的注释;
流向线:表示程序的控制流,以带箭头直线或曲线表达程序的执行路径;
连接点:表示多个流程图的连接方式,常用于将多个较小流程图组织成较大流程图。
程序流程图示例:由连接点A连接的一个程序
1.2 程序的基本结构
程序由三种基本结构组成:顺序结构、分支结构和循环结构。
任何程序都由这三种基本结构组合而成
这些基本结构都有一个入口和一个出口。任何程序都由这三种基本结构组合而成
- 顺序结构是程序按照线性顺序依次执行的一种运行方式,其中语句块1(S1)和语句块2(S2)表示一个或一组顺序执行的语句
- 分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,基础的分支结构是二分支结构。由二分支结构会组合形成多分支结构
- 循环结构是程序根据条件判断结果向后反复执行的一种运行方式,根据循环体触发条件不同,包括条件循环和遍历循环结构
- 在三种基本控制逻辑基础上,Python语言进行了必要且适当的扩展。
- 在分支结构原理的基础上,Python增加了异常处理,使用try-except保留字
- 异常处理以程序异常为判断条件,根据一段代码执行的正确性进行程序逻辑选择。异常处理是分支结构的一种扩展。
- 在循环结构原理的基础上,Python提供两个循环控制符break和continue,对循环的执行过程进行控制。break控制符用来结束当前循环,continue控制符用来结束当前循环的当次循环过程,
2、程序的分支结构
2.1 单分支结构: if语句
Python的单分支结构使用if保留字对条件进行判断,使用方式如下
if <条件>: 语句块
- 其中,if、:和<语句块>前的缩进都是语法的一部分。<语句块>是if条件满足后执行的一个或多个语句序列,缩进表达<语句块>与if的包含关系。<条件>是一个产生True或False结果的语句,当结果为True时,执行<语句块>,否则跳过<语句块>。
# 判断用户输入数字的奇偶性 s = eval(input("请输出一个整数:")) if s % 2 == 0: print("这是个偶数") print("输入数字是 :", s)
- <条件>是一个或多个条件,多个条件间采用and或or进行逻辑组合。and表示多个条件“与”的关系,or表示多个条件“或”的关系
# 判断用户输入数字的特定 s = eval(input("请输出一个整数:")) if s % 3 == 0 and s % 5 == 0: print("这个数字既能被3整除,又能被5整除") print("输入数字是:", s)
2.2 二分支结构: if-else语句
Python的二分支结构使用if-else保留字对条件进行判断,语法格式如下:
if <条件>: <语句块1> else: <语句块2>
- 其中,if、:和语句块前的缩进都是语法的一部分。
<语句块1>在if中<条件>满足即为True时执行,<语句块2>在if中<条件>不满足即为False时执行。简单说,二分支结构根据条件的True或False结果产生两条路径。
# 判断用户输入数字的某个属性 s = eval(input("请输出一个整数:")) if s % 3 == 0 and s % 5 == 0: print("这个数字能够同时被3和5整除") else: print("这个数字不能够同时被3和5整除")
- 二分支结构还有一种更简洁的表达方式,适合<语句块1>和<语句块2>都只包含简单表达式的情况,语法格式如下:
<表达式1> if <条件> else <表达式2>
# 判断用户输入数字的某个属性 s = eval(input("请输出一个整数:")) token = "" if s % 3 == 0 and s % 5 == 0 else "不" print("这个数字{}能够同时被3和5整除 ".format(token))
- 二分支结构还有一种更简洁的表达方式,适合<语句块1>和<语句块2>都只包含简单表达式的情况,语法格式如下:
<表达式1> if <条件> else <表达式2>
# 判断用户输入数字的某个属性 s = eval(input("请输出一个整数:")) token = "" if s % 3 == 0 and s % 5 == 0 else "不" print("这个数字{}能够同时被3和5整除 ".format(token))
2.3 多分支结构: if-elif-else语句
Python的if-elif-else描述多分支结构,语句格式如下:
if <条件1>: <语句块1> elif <条件2>: <语句块2> ... else: <语句块N>
- 多分支结构通常用于判断同一个条件或一类条件的多个执行路径。要注意,Python会按照多分支结构的代码顺序依次评估判断条件,寻找并执行第一个结果为True条件对应的语句块,当前语句块执行后跳过整个if-elif-else结构。
- 利用多分支结构编写代码时要注意多个逻辑条件的先后关系。
- 获取用户输入的一个百分制成绩,转换成五分制,给出对应 的 A、B、C、D、E等级。
# 将百分制成绩转换为五分制成绩 score = eval(input("请输出一个百分制成绩:")) if score >= 60.0: grade = "D" elif score >= 70.0: grade = "C" elif score >= 80.0: grade = "B" elif score >= 90.0: grade = "A" else: grade = "E" print("对应的五分制成绩是:{}".format(grade))
>>>请输出一个百分制成绩:80 对应的五分制成绩是:D
- 显然,百分制80分不应该是等级D,上述代码运行正确但逻辑存在错误,在于弄错了多个逻辑条件的先后关系,修改后代码如下。
# 将百分制成绩转换为五分制成绩 score = eval(input("请输出一个百分制成绩:")) if score >= 90.0: grade = "A" elif score >= 80.0: grade = "B" elif score >= 70.0: grade = "C" elif score >= 60.0: grade = "D" else: grade = "E" print("对应的五分制成绩是: {}".format(grade))
2.4 判断条件及组合
- 分支结构中的判断条件可以使用任何能够产生True或False的语句或函数。形成判断条件最常见的方式是采用关系操作符
print(4 < 5) # True print("Python" > "python") # False
- Python语言中,任何非零的数值、非空的数据类型都等价于True,0或空类型等价于False,可以直接用作判断条件。
print(0 == False) # True print("" == True) # False
- Python语言使用保留字not、and和or对条件进行逻辑运算或组合。
- 保留字not表示单个条件的“否”关系,and表示多个条件之间的“与”关系,保留字or表示多个条件之间的“或”关系。
print(not True) # False a = 80 print(( a > 100) or ( a > 50 and a < 90)) # True