目录

while循环语句

while循环

while循环的嵌套

print输出不换行

制表符\t

for循环语句

for循环

for循环中常用的range语句

for循环的变量作用域

for循环的嵌套

continue

break

习题练习

题目

题目答案


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

以上是自己学习过程中总结和练习的内容,如有错误请谅解,定会修改哈,希望能够帮助小伙伴哦!!参考黑马程序员,如有侵权定会删除~谢谢观看啦!下一章节将会更新有关函数的内容,感兴趣的友友可以继续看哦~

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐