0基础学Python——第三章:循环语句
目录
hello小伙伴们,今天来分享Python中的循环语句喽,话不多说,直接开始!
while循环语句
while循环
在Python中,while循环的格式大致为:
while 条件:
条件满足时,应该要做的事情1
条件满足时,应该要做的事情2
条件满足时,应该要做的事情3
······
只要条件满足,程序会一直无限循环执行。
while循环注意事项:
① 条件是否满足提供布尔类型结果,True则继续,False则停止;
② 冒号(英文)后换行的空格缩进不能忽略;
③ 需要设置好循环终止条件,防止无限循环执行程序。
下面举一个例子,希望帮助大家更好地理解!
# while后面的条件是布尔类型的
i=1
while i<3:
print("月亮我喜欢你")
i=i+1 # i+=1
如上面的代码所示,设置的循环条件是i<100,确保不会无限循环执行程序,同时空格缩进和if判断一样,都不能忘记。
while循环的嵌套
在Python中,while循环的嵌套的格式大致为:
while 条件1:
条件1满足时,应该要做的事情1
条件1满足时,应该要做的事情2
条件1满足时,应该要做的事情3
······
while 条件2:
条件2满足时,应该要做的事情1
条件2满足时,应该要做的事情2
条件2满足时,应该要做的事情3
······
下面举一个例子,希望帮助大家更好地理解!
# 外层:表白3天的控制
# 内层:每天的表白都送2支玫瑰花的控制
i=1
while i<=3:
print(f"今天是第{i}天,准备表白······")
# 内层循环的控制变量
j=0
while j<=2:
print(f"送给小美第{j}只玫瑰花")
j=j+1
print("小美,我喜欢你")
i=i+1
print(f"坚持到第{i-1}天,表白成功")
与判断语句的嵌套一样,循环语句也要注意空格缩进,基于空格缩进来决定层次关系!同时也要注意条件的设置,以防出现无限循环。
print输出不换行
首先观察以下代码,我们只能得到换行的Hello和world。
print("Hello")
print("world")
那么,如果我们想要得到不换行的语句,我们应该怎么做呢?答案如下。
# 不换行输出
print("Hello",end='')
print("world",end='')
在上述代码中,“ end='' ”中两个单引号中间无内容,也不是空格哦!利用这样的方式,就可以得到不换行的print输出语句了。
制表符\t
在Python的字符串中,有一个特殊的符号“\t”,效果等同于键盘上的tab键,它的作用是让多行字符串进行对齐,下面举两个例子,希望方便大家理解。
① 例子1(不可对齐):
# 不可对齐
print("Hello World")
print("Love you")
② 例子2(\t可以对齐)
这里的代码在PyCharm中运行的是可以对齐的,但是在我试验运行时没有运行正确,友友们有知道是怎么回事吗?为了更好地展示结果,大家可以在PyCharm或者其他工具上运行下试试看。
# 对齐(制表符)
print("Hello\tworld")
print("Love\tyou")
这里提供一个老师出的题目,大家可以先不看下面的代码,试着看看能不能自己敲出来。
题目:打印出九九乘法表。
温馨提示:可以利用while循环,打印的时候注意换行哦。
我第一次写的时候并没有写出来,最后的结果是一行内容,并没有呈现一行一行的内容,所以即使没有写出来也没有关系的哦,只要我们慢慢积累和练习,一定能写出来的。
题目答案如下:
# 定义外层循环的控制变量
i=1
while i<=9:
# 定义内层循环的控制变量
j=1
while j<=i:
# 内层循环的print语句不换行,通过\t制表符进行对齐
print(f"{j}*{i}={j*i}\t",end='')
j=j+1
i=i+1
print() # print空内容,就是输出一个换行
大家都写对了吗?一次就能写对的,可以给自己点个赞哦,很厉害!!没有写出来的友友也不要气馁呀,可以认真地看看哪里没有写出来,可以积累一下,以后再遇到的时候能想到用起来就好啦!
for循环语句
for循环
除了while循环,在Python中还有for循环语句,二者能够完成的功能差不多,都需要注意空格缩进,但是也有一些区别。
while循环和for循环的区别:
① while循环的循环条件是自定义的,可以自行控制循环的条件;而for循环是无法定义循环条件的,只能从被处理的数据集中依次取出内容进行处理。(这里可能会有点难理解,友友们可以看下面有一个例子,希望方便理解哦!)
② for循环是一种“轮询”机制,是对一批内容进行“逐个处理”。
这里给大家提供两幅图,希望能够帮助大家理解哦!

在Python中,程序中的for循环的格式大致为:
for 临时变量 in 待处理的数据集:
循环满足条件时要执行的代码
下面举一个例子,希望帮助大家更好地理解!
name="yueliang"
for x in name:
# 将name的内容,挨个取出赋予x临时变量
# 就可以在循环体内对x进行处理
print(x)
正如上述代码所示,for循环是将字符串的内容依次取出,因此for循环也被遍历循环。由于for循环是无法定义循环条件的,因此从理论上讲,Python的for循环无法形成无限循环,即被处理的数据集不能是无限大的。
for循环中常用的range语句
range语句的功能是获得一个数字序列。那么为什么要在循环这一章节提到range语句呢?因为for循环语句在本质上就是遍历序列类型,而通过range语句可以获得一个简单的数字序列,因此将range语句放在这里分享。
range语句主要有3种语法:
① 语法一:range(num)
作用是获取一个从0开始到num结束的数字序列(不含num本身)。例如range(5)获得的数据是[0,1,2,3,4],代码如下。
# range语法一 range(num)
for x in range(5):
print(x)
② 语法二:range(num1,num2)
作用是获取一个从num1开始,到num2结束的序列(不含num2本身)。例如range(5,10)获得的数据是[5,6,7,8,9],请注意括号里面的逗号是英文的!代码如下。
# range语法二 range(num1,num2)
for x in range(5,10):
# 从5开始到10结束(不包含10本身)的一个数字序列
print(x)
③ 语法三:range(num1,num2,step)
作用是获取一个从num1开始,到num2结束的序列(不含num2本身),数字之间的步长以step处的值决定,step默认为1。例如range(5,10,2)获得的数据是[5,7,9],请注意括号里面的逗号是英文的!代码如下。
# range语法三 range(num1,num2,step)
for x in range(5,10,2):
# 从5开始到10结束(不包含10本身)的一个数字序列,数字之间的间隔是2
print(x)
range语句的用途较多,多用于for循环场景中。
请思考一个问题:下面代码最后一行的print语句是否能够访问到变量i?
for i in range(5):
print(i)
print(i)
从规范的角度上是不允许的,然而实际上是可以的。
为了方便大家看,大家可以直接运行下面的代码。可以发现下面的print能够打印出最后的变量i。
for i in range(5):
print(i)
print(i)
这里就要提到for循环的变量作用域了,请看下面的内容。
for循环的变量作用域
for 临时变量 in 待处理的数据集:
循环满足条件时要执行的代码
在Python中,临时变量的作用范围仅限于for循环内部,然而如果在for循环外部访问临时变量,实际上是可以访问到的(上面的例子就是证明),但是从规范的角度考虑,不建议大家这么做。如果需要访问临时变量,可以先在循环外定义好该变量。

上面的代码是我在PyCharm中截取到的代码,可以发现在第一个代码块中,由于没有事先在循环外部定义变量i但却在循环外调用了变量i,导致了警告(有波浪号~);对于第二个代码块,由于事先已经在循环外定义了变量i,因此在循环外调用变量i时并没有警告。
for循环的嵌套
for循环的嵌套的代码框架大致为:
for 临时变量 in 待处理的数据集(序列):
循环满足条件时要执行的代码块
for 临时变量 in 待处理的数据集(序列):
循环满足条件时要执行的代码块
······
下面举一个例子,希望帮助大家更好地理解!
# 坚持表白20天,每天都送10朵花
# range
i=1
for i in range(1,21):
print(f"今天是向小美表白的第{i}天,加油坚持。")
# 写内层循环
for j in range(1,11):
print(f"给小美送的第{j}朵玫瑰花")
print("小美我喜欢你")
print(f"第{i}天,表白成功")
我们学习了两个循环语句,即while循环和for循环,这两个循环语句是可以相互嵌套的哦,详细可见下面的代码。
# 坚持表白20天,每天都送10朵花
# range
i=1
while i<=20:
print(f"今天是向小美表白的第{i}天,加油坚持。")
# 写内层循环
for j in range(1,11):
print(f"给小美送的第{j}朵玫瑰花")
print("小美我喜欢你")
i+=1
print(f"第{i-1}天,表白成功")
continue
continue的用途主要有以下两个:
① 中断本次循环,直接进入下一次循环;
② 用于for循环和while循环时,它的效果是相同的。
for i in range(1,100):
语句1
continue
语句2
在上述代码中,循环内部遇到continue就会中断本次循环,进行下一次,因此这时语句2时不会执行的。continue也可以嵌套使用,但是不能控制上层的循环。主要应用:在循环中,因为一些原因,需要临时结束本次循环的场景。
下面展示下continue及其嵌套的相关代码,希望能够帮助大家理解!
# 演示循环中断语句continue
for i in range(1,6):
print("语句1")
continue
print("语句2") # 是不执行的
print("-------------") # 为了大家更好地观察运行后的结果而进行切分
# 演示continue的嵌套应用
for i in range(1,6):
print("语句1")
for j in range(1,6):
print("语句2")
continue
print("语句3") #是不执行的
print("语句4")
break
break的用途主要有以下两个:
① 直接结束循环;
② 用于for循环和while循环时,它的效果是相同的。
for i in range(1,100):
语句1
break
语句2
语句3
在上述代码中,在循环内部遇到break就会结束循环,因此执行了语句1后不会在执行语句2,而是执行语句3。
在break的嵌套中,
for i in range(1,100):
语句1
for j in range(1,100):
语句2
break
语句3
语句4
break关键字只能控制它所在的循环的结束,根据空格缩进可以看出循环的层次,break不能控制上层for循环的结束。
下面展示下continue及其嵌套的相关代码,希望能够帮助大家理解!
# 演示循环中断语句break
for i in range(1,11):
print("语句1")
break
print("语句2") # 是不执行的
print("语句3")
print("-------------")
# 演示break的嵌套应用
for i in range(1,6):
print("语句1")
for j in range(1,6):
print("语句2")
break
print("语句3") # 是不执行的
print("语句4")
习题练习
题目
# 某公司账户余额有10000元,给20名员工发工资
# 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元
# 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
# 如果工资发完了,结束发工资。
# 请根据上述要求写出程序
该题目来源于黑马程序员,老师讲的真的很好!详细链接如下:
https://www.bilibili.com/video/BV1qW4y1a7fU?t=1.4&p=50
题目答案
# 定义账户余额变量
money=10000
# for循环对员工发放工资
for i in range(1, 21):
import random
score = random.randint(1, 10)
if score < 5:
print(f"员工{i},绩效分{score},低于5,不发工资,下一位。")
# continue跳过工资发放
continue
if money>=1000:
money = money - 1000
print(f"向员工{i}发放工资1000元,账余额还剩余{money}元。")
else:
print(f"余额不足,当前余额:{money},不足以发工资,不发了,下个月再来")
# break结束发放
break
以上是自己学习过程中总结和练习的内容,如有错误请谅解,定会修改哈,希望能够帮助小伙伴哦!!参考黑马程序员,如有侵权定会删除~谢谢观看啦!下一章节将会更新有关函数的内容,感兴趣的友友可以继续看哦~
更多推荐



所有评论(0)