Python流程控制

前言

Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。

一:if语句

if语句用于根据条件执行不同的代码块。condition是一个布尔表达式,后面一定要加冒号,这是python语法规定。if语句后面的条件表达式是可以加括号的,但并不是必须的。使用括号可以使代码更加清晰易懂,特别是在复杂的条件表达式中。然而,括号并不是语法要求,可以根据个人编码风格和团队约定进行选择。

1:if语句的语法及应用示例

if语句用于判断某个条件是否成立。如果成立,则执行语句内的程序;否则跳过if语句,执行后面的内容,语法格式如下:

示例1:使用if语句来判断一个数是否为正数

示例2:接受学生的考试成绩,使用if语句判断。如果成绩大于等于60分,输出合格

示例2中,通过变量score保存键盘输入的成绩80。当if语句判断当成绩大于等于60时,输出“合格”。在python3中,input方法默认返回为str类型。如果想要输出int类型就要改变输出类型为int。

2:条件表达式与关系运算符

使用if语句时,后面要用到条件表达式和关系运算符,它们可以经过运算得到布尔值。如前面示例的score>=60就是一个使用关系运算符“>=”的条件表达式,表示:如果score大于等于60,则表达式的结果是True(真);否则为False(假)。条件表达式语法如下:

操作数  关系运算符  操作数

关系运算符的前后2个数值,条件表达式的计算结果是布尔值。

示例3:关系运算符的运算结果

条件表达式10==9是判断“==”运算符左右两侧的数值是否相等。因为10不等于9,所以,10==9运算结果是False。

条件表达式10!=9是判断“!=”运算符左右两侧的数值是否不相等,因为10不等于9,所以运算结果是True

2.1 if-else条件语句

if语句还可以加上else关键字,根据条件判断,决定执行不同的语句块。当条件为真时,执行语句块1.为假时,执行语句块2,语法如下:

if  条件表达式

语句块1 else:

语句块2

示例4:接收学生的考试成绩,使用if语句判断。如果考试成绩大于等于60分,输出“合格”;否则,输出“需要努力”

2.2 多重if语句

使用if-else语句通过条件判断使程序有2条执行路径,但有时还需要更多条路径进行处理,这时可以加入elif关键字处理。语法:

if  条件表达式1:

语句块1

elif条件表达式2:

语句块2

elif条件表达式3:

语句块3

......

else:

语句块

当条件1成立时,执行条件1对应的语句块1。成立的条件会执行对应语句块。前面条件都不成功时,执行else对应的语句块。

示例5:接收学生考试成绩。如果考试成绩大于等于90分,则输出“优秀”。如果考试成绩小于90分且大于等于70分,则输出良好。如果成绩小于70分且大于等于60分,则输出“合格”。如果考试成绩小于60分,则输出“需要努力”

使用键盘输入不同的值,执行了不同的语句块,输出不同的结果。if语句中,else关键字是可选项,可以有也可以没有。

2.3if语句的常见问题

(1)使用if-elif-else语句时,容易出现逻辑错误

因为条件是由上向下判断,如果条件成立,下面的条件判断将不再执行。

(2)if语句中,语句块没有缩进也是容易犯的错误

错误示例:

编写代码时,要保证同级语句缩进的空格必须绝对一致。即使只有一个空格的差别,它们已经表示不同的语句块了。

错误示例:

第二条输出语句比第一条多了1个空格,执行时会报错

(3)从其他程序设计语言转为Python的程序员,由于习惯经常会忘记表达式后面的冒号。

2.a Python的循环

2.a.1 while循环

1.while循环语句

循环的条件表达式后面也要使用冒号,然后缩进循环操作语句。while语句是先判断后执行。即:先判断条件表达式是否成立,如果条件表达式的值为True,则执行循环操作语句。如果其值为False,则跳出循环,执行while语句后面的语句

示例6:当count值小于正整数5时,执行加1操作。当count小于5时,输出count的值

示例7:输入5门课程的考试成绩,计算平均分并输出

字符串的格式化是将若干值插入带有“%”替换符的字符串中,从而可以动态地输出字符串

2.Python的注释

注释便于日后阅读和修改代码。Python中使用“#”开头表示注释,可以在代码中添加注释。

示例8:添加了注释的Python代码,输入5门课程的考试成绩,计算平均成绩

对于“#+空格”开头的文字,python解释器不会做任何处理。而代码中的注释,可以提高代码的可读性。

python注释有两种用法。一是,在开头就使用“#”的称为单行注释;二是,紧随同行代码,以“#”开头的称为内行注释。

3.字符串的格式化输出

字符串中的“&d”,表示插入的是一个整列数据,%s格式化字符串,%f格式化浮点数字,字符串后面的“% i”表示获取变量i的值

示例9:常用替代符的使用情况

字符串中使用对应的替代符,把相应的变量插入到了相应的位置

字符串中还可以使用多个替代符,对应的变量使用元组即可,示例如下:

使用时要注意替代符和变量的顺序,位置不能放错;否则可能会出现类型不匹配的问题

还可以使用字典格式化多个值,示例如下:

因为字典是无序的,所以使用字典时通过键获得与之对应的值

4.while循环嵌套

示例10:使用while语句分别接收2名学生的5门课程考试成绩,计算并输出每个人的平均成绩

外层的while语句用于输入学生名字,用变量j控制循环次数,共两次

内层的while语句用于输入5门成绩,用变量i控制,也就是在外层循环输入一个名字后,需要输入5门成绩,然后输出这名学生的成绩平均值,一共可以输入2名学生

2.b for循环

for语句是另一种用于控制循环结构的方式。Python的while是使用条件判断执行循环,而for是使用遍历元素的方式进行循环

1.for循环的几种方式

(1)for循环可以对字符串进行遍历,逐个获得字符串的每个字符

示例:

(2)for循环可以对列表和元组进行遍历

取值列表也可以用元组

(3)需要循环操作相同的内容时,可以用for循环和range()函数结合使用,先看看range()函数的作用,示例:

list(range(0,5,2))  表示列表值0到5(不包含5),间隔为2,即:0、2、4

2.for循环示例

示例:接收某个学生三门课程的考试成绩,计算输出平均成绩

3.逻辑运算符

python的逻辑运算符

and 逻辑与   如果两个操作数都为True,则表达式值为True
or 逻辑或   如果两个操作数中有一个为True,则表达式值为True
not  逻辑非   求反运算,如果操作数值为True,则表达式值为False,

如果操作数值为False,则表达式值为rue

示例:

not  是求反运算,所以notTrue的结果是False;
and  是与运算,只要有一个值是False,结果就是False,所以(True and False)的结果是 False

or  是或运算,只要有一个值是rue,结果就是True,所以(TrueorFalse)的结果是True。

下面对成绩做一个有效性判断:

4.for循环嵌套

示例:使用for语句分别接收2名学生的5门课程考试成绩,计算并输出每个人的平均成绩

在for循环中嵌套while循环

2.c.循环控制

使用while和for语句执行循环操作时,有可能需要改变循环的正常执行顺序,这时就需要用循环控制语句实现,循环控制语句有break和continue

1.break语句

在循环语句块中使用break语句,可以跳出整个循环

示例:对输出平均成绩的代码进行修改,当成绩无效时,使用break退出循环

break只和一个for循环对应,虽然有2层循环,但它只会结束离它最近的循环,这里就是第2层for循环。第2层循环结束后,接着执行后面的第12行和13 行代码,第1层的循环照常遍历执行,开始输入第2个学生“小张”的成绩。

2.continue语句

在 Python 中,continue 语句用于跳过当前循环中的剩余代码,并继续执行下一次循环。当continue语句被执行时,程序将立即跳转到循环的开头,而不执行continue 语句之后的代码。它通常用于条件判断内部,用来控制循环的执行流程。
示例 14:分别接收2个学生3门课程('Python','MySQL','Linux')的考试成绩,要求成绩的取值范围是大于等于 8且小于等于100;计算并输出每个学生的平均成绩,示例14代码如下

第1层使用的是for循环遍历学生,第2层使用while循环遍历成绩,使用continue 是跳到离它最近的循环的下一轮,也就是第2层的 while 循环的下一轮。因为执行continue后,第 13 行的 i= i+1 没有执行,而是重新又执行第6行的while 循环,所以就是对当前课程的成绩重新输入。当输入 MySQL的成绩为111时,提示数据有误,然后又提示需要重新输入 MySQL 成绩,代码更加健壮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值