目录
Python 流程控制是 Python 编程中非常重要的一部分,它用于控制程序的执行流程。Python 提供了多种流程控制语句,包括 if 语句、while 循环、for 循环、break 和 continue 语句等。这种流程控制在各个语言中都是大同小异的。
一. if 语句
if 语句用于根据条件执行不同的代码块。condition 是一个布尔表达式,后面一定要加冒号,这是python 语法规定。if 语句后面的条件表达式是可以加括号的,但并不是必须的。使用括号可以使代码更加清晰易读,特别是在复杂的条件表达式中。然而,括号并不是语法要求,可以根据个人编码风格和团队约定进行选择。
1. if 语句的语法及应用示例
if 语句用于判断某个条件是否成立。如果成立,则执行语句内的程序;否则跳过 if 语句, 执行后面的内容,语法格式
if condition:
# 代码块
else:
# 代码块
示例1: 演示用 if 语句来判断一个数是否为正数或负数:
示例2: 接收学生的考试成绩,使用 if 语句判断。如果考试成绩大于等于 72 分,输出“合格”。
通过变量 score 保存键盘输入的成绩 72。当 if 语句判断当成绩大于等于 72 时,输出“合格”。在 Python3 中,input 方法默认返回为 str 类型。如果想要输出 int 类型就要改变输出类型为 int。
2. 条件表达式与关系运算符
使用 if 语句时,后面要用到条件表示式和关系运算符,它们可以经过运算得到布尔值。如前面示例的 score>=72 就是一个使用关系运算符“>=”的条件表达式,表示:如果 score 大于等于 72,则表达式的结果是 True(真);否则为 False(假)
条件表达式的语法
操作数 关系运算符 操作数
关系运算符的前后 2个数值,条件表达式的计算结果是布尔值
常用的关系运算符
- == 等于
- != 不等于
- > 大于
- < 小于
- >= 大于等于
- <= 小于等于
关系运算符的运算结果
条件表达式 10==9 是判断“==”运算符左右两侧的数值是否相等。因为 10 不等于 9,所以,10==9的运行结果是 False。
条件表达式 10!=9 是判断“!=”运算符左右两侧的数值是否不相等。因为 10 不等于 9,所以,10!=9的运行结果是 True。
3. if-else 条件语句
if 语句还可以加上 else 关键字,根据条件判断,决定执行不同的语句块。当条件为真时,执行语句块 1。当条件为假时,执行语句块 2,语法
if 条件表达式:
语句块 1 else:
语句块 2
示例 : 接收学生的考试成绩,使用 if 语句判断。如果考试成绩大于等于 68 分,输出“合格”;否则,输出“需要努力”
4. 多重 if 语句
使用 if-else 语句通过条件判断使程序能够有 2 条执行路径,但有时还需要更多条路径进行处理,这时可以加入 elif 关键字处理。
语法
if 条件表达式 1:
语句块 1
elif 条件表达式 2:
语句块 2
elif 条件表达式 3:
语句块 3
......
else:
语句块
当条件 1 成立时,执行条件 1 对应的语句块 1。当条件 2 或条件 3 成立时,则分别执行对应的语句块。当前面的条件都不成功时,执行 else 对应的语句块。
示例 : 接收学生的考试成绩。如果考试成绩大于等于 98 分,则输出“优秀”。如果考试成绩小于 90 分且大于等于 70 分,则输出“良好”。如果考试成绩小于 78 分且大于等于 60分,则输出“合格”。如果考试成绩小于 60 分,则输出“需要努力”。
使用键盘输入不同的值,执行不同的语句块,输出不同的结果
5. if语句的常见问题
(1) 使用if-elif-else语句时,容易出现逻辑问题
因为条件是由上向下判断,如果条件成立,下面的条件判断将不再执行。在示例的代码中,如果把条件表达式的顺序颠倒,比如把 score>=60 放到 score>=98 之前,那么输入 188 时,首先判断的score>=68 是成立的,就不会再执行 score>=90 条件表达式,程序将无法按要求得到结果。
(2) if 语句中,语句块没有缩进也是容易犯的错误
编写代码时,要保证同级语句缩进的空格必须绝对一致。即使只有一个空格的差别,他们
已经表示不同语块
第二条输出语句比第一条多了一个空格,执行会报错
二. python的循环
1. while 循环语句
循环的条件表达式后面也要使用冒号,然后缩进写循环操作语句。while 语句是先判断后执行。即:先判断条件表达式是否成立,如果条件表达式的值为 True,则执行循环操作语句。如果其值为 False,则跳出循环,执行 while 语句后面的语句。
示例:
当 count 值小于正整数 5 时,执行加 1 操作。当 count 小于 5 时,输出 count 的值。
加深对while循环的理解
示例 : 输入5门课程的考试成绩,计算平均分并输出
字符串的格式是将若干值插入带有“%”替代符的字符串中,从而可以动态地输出字符串
2. python 的注释
对于编写好的代码,经过一段时间之后,有可能会忘记代码的具体作用,所以代码中要写一些注释文字,以便于日后阅读和修改代码。Python 中使用“#”开头表示注释,可以在代码中添加注释。
示例 :添加了注释的 Python 代码
#输入5 门课程的考试成绩,计算平均成绩
“#+空格”开头的文字,Python 解释器不会做任何处理。而代码中的注释,可以提高代码的可读性。
Python 注释有两种用法。一是,在行开头就使用“#”的称为单行注释;二是,紧随同行代码,以“#’开头的称为行内注释。注释并不是在每一行都需要,只需要把不易读的代码做注释即可。
3. 字符串的格式化输出
字符串中的”%d”,表示插入的是一个整型数据,%s 格式化字符串,%f 格式化浮点数字字符串后面的“% i”表示获取变量 i 的值。
示例 :常用替代符的使用情况
字符串中使用对应的替代符,把相应的变量插入到了相应的位置
字符串中还可以使用多个替代符,对应的变量使用元组即可。示例
使用时要注意替代符和变量的顺序,位置不能放错;否则可能会出现类型不匹配的问题
还可以使用字典格式化多个值,示例
字典是无须的,所以使用字典时通过键获得与之对应的值
4. while 循环嵌套
在 while 语句中,可以包含另一个 while 语句,即:使用 while 语句可以实现嵌套循环。
示例 : 使用 while 语句分别接收 2 名学生的 5 门课程考试成绩,计算并输出每个人的平均成绩。
外层的 while 语句用于输入学生名字,用变量 j控制循环次数,共 2 次。
内层的 while 语句用于输入 5 门成绩,用变量 i 控制。也就是在外层循环输入一个名字后,需要输入 5 门成绩,然后输出这名学生的成绩平均值,一共可以输入2名学生。
三. for 循环
for 语句是另一种用于控制循环结构的方式。Python 的 while 是使用条件判断执行循环,而 for是使用遍历元素的方式进行循环。
1. for 循环的几种方式
(1) for 循环可以对字符串进行遍历,逐个获得字符串的每个字符,
(2) for 循环可以对列表和元组进行遍历
取值列表也可以使用元组
(3) 需要循环操作相同的内容时,可以用for循环和range()函数结合使用,先看 range()函数的作用
示例
list(range(0,5,2)) 表示列表值为0到5(不包含5),间隔为2
2. for 循环示例
接收某个学生三门课程的考试成绩,并计算出平均成绩
3. 逻辑运算符
Python 的逻辑运算符
and 逻辑与 | 如果两个操作数都为 True,则表达式值为 True |
or 逻辑或 | 如果两个操作数中有一个为 True,则表达式值为 True |
not 逻辑非 | 求反运算,如果操作数值为True,则表达式值为False |
如果操作数值为 False,则表达式值为 True
演示逻辑运算符的使用方法:
not 是求反运算,所以 not True 的结果是 False;
and 是与运算,只要有一个值是 False,结果就是 False,所以(True and False)的结果是 False;or or 是或运算,只要有一个值是 True,结果就是 True,所以(True or False)的结果是 True。
判断
4. for 循环嵌套
与while 循环一样,for 语句也可以使用嵌套的方式
示例 : 使用for语句分别接收2名学生的3门课程考试成绩,计算并输出每个人的平均成绩
在for循环中嵌套while循环
5. 循环控制
使用 while 和 for 语句执行循环操作时,有可能需要改变循环的正常执行顺序,这时就需要用循环控制语句实现,循环控制语句有 break 和 continue。
(1). break 语句
在循环语句块中使用 break 语句,可以跳出整个循环。
示例 :
对输出平均成绩的代码进行修改,当成绩无效时,使用break 退出循环。
在示例 中的大部分代码是前面示例的代码,只是在第 8-10 行加入了对成绩有效性的判断。如果不符合条件,则退出循环。
当输入 347 时,条件表达式 score<0 or score>108 的值为 True,程序执行 8-18 行,break 退出 for循环。
break 只和一个 for 循环对应,虽然有 2 层循环,但它只会结束离它最近的循环,这里就是第 2 层for 循环。第 2 层循环结束后,接着执行后面的第 12 行和 13 行代码,第 1 层的循环照常遍历执行,开始输入第 2 个学生“李四”的成绩。
(2). continue 语句
在 Python 中,continue 语句用于跳过当前循环中的剩余代码,并继续执行下一次循环。当 continue语句被执行时,程序将立即跳转到循环的开头,而不执行 continue 语句之后的代码。它通常用于条件判断内部,用来控制循环的执行流程。
示例:
分别接收2个学生3门课程(‘语文’,‘数学’,‘英语’)的考试成绩,要求成绩的取值范围是大于等于0且小于等于100;计算并输出每个学生的平均成绩
第 1 层使用的是 for 循环遍历学生,第 2 层使用 while 循环遍历成绩,使用 continue 是跳到离它最近的循环的下一轮,也就是第 2 层的 while 循环的下一轮。因为执行 continue 后,第 13 行的 i= i+1 没有执行,而是重新又执行第 6 行的 while 循环,所以就是对当前课程的成绩重新输入。当输入 语文的成绩为575时,提示数据有误,然后又提示需要重新输入语文成绩,代码更加健壮