Python笔记(三)—— Python循环语句

循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。

循环在程序中同判断一样,也是广泛存在的,是非常多功能实现的基础:

bilibili循环轮播图

循环和判断一样,同样是程序中最基础最核心的逻辑功能

3.1 while循环的基础应用

while循环的语法格式:

while 条件:

条件满足时,做的事情1

条件满足时,做的事情2

...(省略)...

只要条件满足,会无限循环执行

例如:

小美心软,只要表白100次,就会成功

python 复制代码
print("小美,我喜欢你")
print("小美,我喜欢你")
print("小美,我喜欢你")
...(还有97次)...

对于上面的案例,我们可以使用while循环语句简单搞定:

python 复制代码
i = 0
while i < 100:
    print("小美,我喜欢你")
    i += 1

while循环注意点:

  1. while的条件需得到布尔类型,True表示继续循环,False表示结束循环

  2. 需要设置循环终止的条件,如 i += 配合 i < 100 ,就能确保100次后停止,否则将无限循环

  3. 空格缩进不能忘,和 if 判断一样,都需要设置

3.2 练习案例:求1-100的和

python 复制代码
i = 1
sum = 0
while i <= 100:
    sum += i
    i += 1

print(f"1-100的累加和是:{sum}")

输出结果:

3.3 练习案例:while循环猜数字

代码源码,可以运行:

python 复制代码
import random
num = random.randint(1,100)

# 定义一个变量,记录总共猜测了多少次
count = 0

# 通过一个布尔类型的变量,做循环是否继续的标记
flag = True
while flag:
    guess_num = int(input("请输入你猜测的数字:"))
    count += 1
    if guess_num == num:
        print("猜中了")
        # 设置为False就是终止循环的条件
        flag = False
    else:
        if guess_num > num:
            print("你猜的大了")
        else:
            print("你猜的小了")

print(f"你总共猜了{count}次")

输出结果:

l

3.4 while循环的嵌套应用

生活中的嵌套循环

程序中的循环:

while 条件1:

条件1满足时,做的事情1

条件1满足时,做的事情2

...(省略)...

while 条件2:

条件2满足时,做的事情1

条件2满足时,做的事情2

...(省略)...

while循环的嵌套使用

python 复制代码
# 外层:表白100天的控制
# 内层:每天的表白都送10只玫瑰花的控制
i = 1
while i <= 100:
    print(f"今天是第{i}天,准备表白......")

    j = 1
    while j <= 10:
        print(f"送给小美第{j}朵玫瑰花")
        j += 1

    print("小美,我喜欢你")
    i += 1

print(f"坚持到第{i-1}天,表白成功")

注意:

1. 同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进(基于空格缩进来决定层次关系)

2. 注意条件的设置,避免出现无限循环。

3.5 while循环练习案例:九九乘法表

补充知识1:print输出不换行

默认print语句输出内容会自动换行,如下图

在即将完成的案例中,我们需要使用print语句,输出不换行的功能,非常简单,实现方式如下:

如图,在print语句中,加上**end = ' '**即可输出不换行了

补充知识2:制表符 \t

在字符串中,有一个特殊符号 \t ,效果等同于在键盘上按下:tab键

它可以让我们的多行字符串进行对齐

比如:

练习案例:

分析:

  1. 控制行的循环 i <= 9

  2. 控制每一行输出的循环 j <= i

  3. 输出不换行:print( j * i , end = ' ')

  4. 对齐:\t

代码源码,可以运行:

python 复制代码
# 定义外层循环的控制变量
# i:行数  j:列数
i = 1
while i <= 9:

    # 定义内层循环的控制变量
    j = 1
    while j <= i:
        # 内层循环的print语句,不要换行,通过\t制表符进行对齐
        print(f"{j} * {i} = {j * i}\t ", end = '' )
        j += 1

    i += 1
    # print空内容,就是输出一个换行
    print()

输出结果:

3.6 for循环的基础语法

1.基础语法

除了while循环语句外,Python同样提供了for循环语句

两者能完成的功能基本差不多,但仍有一些区别:

  • while循环的循环条件是自定义的,自行控制循环条件
  • for循环是一种 "轮询" 机制,是对一批内容进行**"逐个处理"**

for循环基础语法:

for 临时变量 in 待处理数据集:

循环满足条件时执行的代码

python 复制代码
name = "itheima"

for x in name:
    #将name的内容,挨个取出赋予x临时变量
    #就可以在循环体内对x进行处理
    print(x)

for循环是将字符串的内容:依此取出 。所以,for循环也被称为:遍历循环

for循环注意点:

同while循环不同,for循环是无法定义循环条件的。

只能从被处理的数据集中,依此取出内容进行处理。

所以,理论上讲,python的for循环无法构建无限循环(被处理的数据集不可能无限大)

要注意,循环内的语句,需要有空格缩进。

3.7 for循环练习案例:数一数有几个a

代码源码,可运行:

python 复制代码
#统计如下字符串中,有多少个字母a
name = "itheima is a brand of itcast"

#定义一个变量,用来统计有多少个a
count = 0

#for 循环统计
#for 临时变量 in 被统计的数据

for x in name:
    if x == "a"
        count += 1

print(f"被统计的字符串有{count}个a")

运行结果:

3.8 range语句

for循环语句,本质上是遍历:序列类型

尽管除字符串外,其他的序列类型目前没学习到,但是不妨碍我们通过学习range语句,获得一个简单的数字序列。

语法1:

range(num)

获取一个从0开始,到num结束的数字序列(不含num本身)

如range(5)取得的数据是:{0,1,2,3,4}

语法2:

range(num1,num2)

获得一个从num1开始,到num2结束的数字序列(不含num2本身)

如,range(5,10)取得的数据是:[5,6,7,8,9]

语法3:

range(num1,num2,step)

获得一个从num1开始,到num2结束的数字序列(不含num2本身)

数字之间的步长,以step为准(step默认为1)

如,range(5,10,2)取得的数据是:[5,7,9]

演示Python中的range()语句的基本使用:

  • range语法1:range(num)
python 复制代码
for x in range(10):
    print(x)

运行结果:

  • range语法2:range(num1,num2)
python 复制代码
for x in range(5,10):
#从5开始,到10结束(不包含10本身)的一个数字序列,数字之间间隔是1
    print(x)

运行结果:

  • range语法3:range(num1,num2,step)
python 复制代码
for x in range(5,10,2):
#从5开始,到10结束(不包含10本身)的一个数字序列,数字之间的间隔是2
    print(x)

运行结果:

python 复制代码
for x in range(10):
    print("送玫瑰花🌹")

3.9 for循环临时变量作用域

python 复制代码
for i in range(5):
    print(i)

print(i)

如图代码,思考一下:

红框中的print语句,能否访问到变量i?

规范上:不允许

实际上:可以

临时变量,在编程规范上,作用范围(作用域),至限定在for循环内部

如果在for循环外部访问临时变量:

  • 实际上是可以访问到的
  • 在编程规范上,是不允许,不建议这么做的

for循环中的临时变量,其作用域限定为: 循环内

如需访问临时变量,可以预先在循环外定义它

3.10 for循环的嵌套应用

同样以向小美表白的案例为例

  • 坚持表白100天
  • 每天送花10束

演示嵌套应用for循环:

python 复制代码
i = 1
for i in range(1,101):
    print(f"今天是向小美表白的第{i}天,坚持.")
    #写内层循环
    for j in range(1,11):
        print(f"送给小美的第{j}朵玫瑰花")
    print(f"小美,我喜欢你(第{i}天的表白结束)")

print(f"第{i}天,表白成功")

我们目前学习了两个循环,while循环和for循环

这两类循环语句是可以相互嵌套的,如下,小美表白的案例可以改为:

python 复制代码
i = 1
for i in range(1,101):
    print(f"今天是向小美表白的第{i}天,坚持.")
    j = 1
    while j <= 10:
        print(f"送给小美的第{j}朵玫瑰花")
        j += 1
    print(f"小美,我喜欢你(第{i}天的表白结束)")

print(f"第{i}天,表白成功")

注意:

  • 需要注意缩进,嵌套for循环同样通过缩进确定层次关系
  • for循环和while循环可以相嵌套使用

3.11 for循环练习案例:for循环打印九九乘法表

外层循环控制行数,内层循环控制每一行的内容

代码源码,可运行:

python 复制代码
#通过外层循环控制行数
for i in range(1,10):
    #通过内层循环控制每一行的内容
    for j in range(1,i+1):
        print(f"{j} * {i} = {j * i}\t",end='')
    #外层循环可以通过print输出一个回车符
    print()

运行结果:

3.12 continue和break

思考:无论是while循环还是for循环,都是重复性的执行特定操作

在这个重复的过程中,会出现一些其它情况让我们不得不:

  • 暂时跳过某次循环,直接进入下一次
  • 提前退出循环,不再继续

对于这种场景,Python提供continue和break关键字

用以对循环进行临时跳过和直接结束

continue

continue关键字用于:中断本次循环,直接进入下一次循环

continue可以用于:for循环和while循环,效果一致

python 复制代码
for i in range(1,100):
    语句1
    continue
    语句2

上面代码:

  • 在循环中,遇到continue就结束当次循环,进行下一次
  • 所以,语句2是不会执行的

应用场景:

在循环中,因为某些原因,临时结束本次循环

演示循环语句的中断控制:break和continue

python 复制代码
for i in range(1,6):
    print("语句1")
    continue
    print("语句2")

运行结果:

continue在嵌套循环中的应用

continue关键字只可以控制:它所在的循环临时中断

演示continue的嵌套循环:

python 复制代码
for i in range(1,6):
    print("语句1")
    for j in range(1,6):
        print("语句2")
        #这个continue只能控制内层for循环,对外层的for循环是没有任何影响的
        #语句3是压根不会执行的,语句1,2,4都可以执行
        continue
        print("语句3")

    print("语句4")
break

break关键字用于:直接结束循环

break可以用于:for循环和while循环,效果一致

python 复制代码
for i in range(1,100):
    语句1
    break
    语句2

语句3

上面代码:

  • 在循环中,遇到break就结束循环了
  • 所以,执行了语句1后,直接执行语句3了

演示循环中断语句break:

python 复制代码
for i in range(1,101):
    print("语句1")
    break
    print("语句2")

print("语句3")

运行结果:

break在嵌套循环中的应用

break关键字同样只可以控制:它所在的循环结束

演示break的嵌套循环:

python 复制代码
for i in range(1,6):
    print("语句1")
    for j in range(1,6):
        print("语句2")
        #这个break同时只能控制内层for循环,对外层的for循环是没有任何影响的
        #直接输出语句1,语句2(只执行1次,因为遇到了break),然后输出语句4
        break
        print("语句3")

    print("语句4")

运行结果:

总结:

  1. continue的作用是:中断所在循环的当次执行,直接进入下一次
  2. break的作用是:直接结束所在的循环
  3. ⚠️注意事项:
  • continue和break,在for和while循环中作用一致
  • 在嵌套循环中,只能作用在所在的循环上,无法对上层(外层)循环起作用

3.13 循环综合案例:发工资

代码源码,可运行:

python 复制代码
#定义账户余额变量
money = 10000
#for循环对员工发放工资
for i in range(1,21):
    import random
    score = random.randint(1,10)

    if score < 5:
        print(f"员工{i}绩效分{score},不满足,不发工资,下一位")
        #continue跳过发放
        continue

    #if判断余额足不足
    if money >= 1000:
        money -= 1000
        print(f"员工{i},满足条件发放工资1000,公司账号余额:{money}")
    else:
        print("余额不足,当前余额:{money}元,不足以发工资,不发了,下个月再来")
       #break结束发放
        break

运行结果:

相关推荐
不会调制解调的猫8 分钟前
笔记 | 内网服务器通过wifi穿透,设置流量走向
运维·服务器·笔记
程序员大雄学编程1 小时前
「机器学习笔记7」决策树学习:从理论到实践的全面解析(上)
笔记·决策树·机器学习
聪明的笨猪猪2 小时前
Java Spring “Bean” 面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
bnsarocket3 小时前
Verilog和FPGA的自学笔记3——仿真文件Testbench的编写
笔记·fpga开发·verilog·自学
丰锋ff4 小时前
2025 年真题配套词汇单词笔记(考研真相)
笔记·考研
小熊猫程序猿6 小时前
Datawhale 算法笔记 AI硬件与机器人大模型 (五) Isaac Sim 入门
人工智能·笔记·机器人
不太可爱的叶某人9 小时前
【学习笔记】kafka权威指南——第10章 监控kafka (7-10章只做了解)
笔记·学习·kafka
张人玉10 小时前
C# TCP 客户端开发笔记(TcpClient)
笔记·tcp/ip·c#
不太可爱的叶某人13 小时前
【学习笔记】kafka权威指南——第6章 可靠的数据传递
笔记·学习·kafka
研猛男15 小时前
0、FreeRTOS编码和命名规则
笔记·stm32·freertos