当前位置:首页>python>30天精通Python语法 | Day7:吃透while循环语句,让程序帮你重复干活,彻底解放双手

30天精通Python语法 | Day7:吃透while循环语句,让程序帮你重复干活,彻底解放双手

  • 2026-09-17 10:26:09
30天精通Python语法 | Day7:吃透while循环语句,让程序帮你重复干活,彻底解放双手

本文为「30天吃透Python核心语法」系列第七篇,承接Day6的if条件语句内容,全程纯文字讲解、新手友好、无晦涩术语,每一个知识点都配可直接运行的代码示例,跟着练就能写出会重复执行、批量处理任务的实用代码。

大家好,欢迎来到30天Python精通计划的第七天。

Day6我们一起搞定了if条件语句,让程序拥有了“思考和选择的能力”,能根据不同条件走不同的逻辑分支,很多同学都在评论区完成了打卡,特别棒!

但这段时间我也收到了很多新手同学的留言:

- 我要打印100遍“好好学习Python”,难道要复制粘贴100次print语句吗?

- 我想计算1到100的累加和,总不能一个个数字手动加吧?

- 我想做一个猜数字游戏,用户猜不对就一直猜,猜对了才结束,这该怎么实现?

- 我想给用户3次输密码的机会,输错就锁定,不用写3遍重复的判断代码吧?

别慌,这些问题的答案,全在今天的内容里。

今天我们要学的while循环语句,就是专门解决「重复执行代码」这个核心需求的。如果说前六天的学习,让你的程序能做计算、会做判断,那今天学完循环,你的程序就真正能帮你“干活”了——所有重复、繁琐、机械的操作,都能交给循环一键搞定,彻底解放你的双手。

学完今天的内容,你将:

✅ 彻底搞懂while循环的核心逻辑,理解循环的完整执行流程

✅ 掌握while循环的基础语法,写出可稳定重复执行的代码

✅ 吃透循环三要素,从根源上避开新手最容易踩的死循环坑

✅ 学会break和continue两个关键字,灵活掌控循环的启停与跳转

✅ 掌握while循环3个经典实战场景,写出能解决实际问题的小脚本

✅ 为后续for循环、批量数据处理、办公自动化打下坚实地基

一、先搞懂:while循环的本质是什么?

用一句大白话讲,while循环的本质,就是我们日常说话的「只要...就一直...」逻辑:

只要满足某个条件,就一直重复执行同一段代码;直到条件不满足了,就停止重复,跳出循环,继续执行后面的代码。

它的核心价值,就是用几行代码,实现无数次的重复操作,彻底告别复制粘贴的机械劳动。

我们用一个最直观的例子对比,你就能瞬间明白它的用处:

没有循环的时候,你要打印5遍“好好学习Python”,只能这么写:

python  

# 没有循环,重复写5遍代码,要打印100遍就得写100行

print("好好学习Python")

print("好好学习Python")

print("好好学习Python")

print("好好学习Python")

print("好好学习Python")

有了while循环之后,代码就变成了这样:

python  

# 用while循环,3行代码就能实现无数次重复

i = 1

while i <= 5:

    print("好好学习Python")

    i += 1

哪怕你要打印100遍、1000遍,只需要把条件里的5改成100、1000就行,代码行数完全不变,效率直接拉满。

二、while循环的基础语法与执行流程

while循环的语法和我们Day6学的if语句高度相似,新手可以直接联动记忆,唯一的区别是:if的条件满足,代码只执行1次;while的条件满足,代码会一直重复执行,直到条件不满足为止。

1. 基础语法规则

while循环的语法结构非常固定,新手必须严格遵守,少一个符号、错一个缩进都会报错:

1. 第一行必须顶格写关键字 while ,后面跟循环条件(就是Day5学的,结果一定是True或False的表达式),行尾必须加英文冒号;

2. 第二行开始,必须缩进4个空格(或1个Tab键),所有缩进的代码统称为「循环体」,也就是要重复执行的内容;

3. 循环体执行完成后,会自动回到while开头,重新判断循环条件,开启下一轮循环。

2. 完整执行流程(新手必记!)

很多新手写循环逻辑混乱,核心是没搞懂循环的执行顺序,我把它拆解成4步,哪怕是零基础也能一眼看懂:

1. 初始判断:程序运行到while语句时,先计算循环条件的结果,判断是True还是False;

2. 条件为True:执行缩进里的循环体代码,一行一行全部执行完;

3. 循环校验:循环体执行完毕后,自动跳回while开头,重新计算循环条件的结果,再次判断;

4. 条件为False:直接跳过整个循环体,跳出循环,执行循环后面的非缩进代码。

简单总结:条件满足,就循环执行;条件不满足,就立刻结束循环。

3. 最简实操示例

我们用“打印1到5的数字”这个场景,带你完整走一遍循环流程,代码可以直接复制到PyCharm里运行:

python  

# 1. 定义循环变量初始值

i = 1

# 2. 循环条件:只要i小于等于5,就一直执行循环体

while i <= 5:

    # 3. 循环体:要重复执行的代码

    print(f"当前数字是:{i}")

    # 4. 循环变量更新:每次循环i加1,这是避免死循环的关键

    i += 1

# 循环结束后执行的代码

print("循环执行完毕")

我们一步步拆解它的执行过程:

- 初始i=1,判断1<=5为True,执行print打印1,i变成2;

- 回到while开头,判断2<=5为True,执行print打印2,i变成3;

- 重复这个过程,直到i变成6,判断6<=5为False,跳出循环,执行最后的print语句。

三、循环三要素:从根源上避开死循环,新手必背

很多新手写while循环,一运行就停不下来,电脑直接卡死,核心原因就是没凑齐循环三要素。

写一个能正常运行、不会出错的while循环,必须同时具备以下三个要素,缺一不可,新手一定要刻在脑子里:

1. 循环变量的初始值

循环变量就是我们用来控制循环次数、判断循环条件的变量,通常用 i 、 j 、 count 等命名,必须在while循环开始之前,先定义并赋初始值。

比如上面示例里的 i = 1 ,就是循环变量的初始值,没有这个初始值,while的条件就无法判断,会直接报变量未定义的错误。

2. 循环终止条件

就是while后面跟的条件表达式,它必须有一个能变成False的可能性,否则循环会永远执行下去,变成死循环。

比如上面示例里的 i <= 5 ,当i增加到6的时候,条件就会变成False,循环就有了终止的出口。

3. 循环变量的更新

这是三要素里最关键、新手最容易漏掉的一步。必须在循环体内部,更新循环变量的值,让它朝着“循环条件变成False”的方向变化。

比如上面示例里的 i += 1 ,每次循环都让i加1,i才会从1慢慢变成6,最终让条件不成立,终止循环。如果漏掉了这一行,i永远是1,条件永远是True,循环就永远不会停止。

四、循环控制关键字:break和continue,灵活掌控循环

学会了基础的while循环,我们只能控制“条件满足就循环,不满足就结束”,但实际场景里,我们经常需要更灵活的控制:比如循环过程中遇到特定情况,直接提前结束循环;或者遇到特定情况,跳过这一次循环,直接进入下一轮。

这就需要用到两个专门的循环控制关键字: break 和 continue ,下面我们逐个拆解清楚。

1. break:立刻终止整个循环

 break 的核心作用,就是立刻、彻底终止当前的整个while循环,哪怕循环条件还是True,只要执行到break,就会直接跳出循环,执行循环后面的代码,不会再进行下一轮循环。

它通常和if条件语句配合使用:在循环体里判断,如果满足某个特定条件,就执行break,提前结束循环。

我们用一个示例就能看懂:

python  

# 循环打印1到10,遇到数字5就立刻终止循环

i = 1

while i <= 10:

    # 如果i等于5,就执行break,终止整个循环

    if i == 5:

        print("遇到5了,循环终止")

        break

    print(f"当前数字是:{i}")

    # 循环变量更新

    i += 1

print("循环结束")

运行这段代码你会发现,程序只会打印1到4,当i变成5的时候,会触发if条件,执行break,直接跳出整个循环,不会再打印5到10,也不会继续循环了。

2. continue:跳过本次循环,进入下一轮

 continue 的核心作用,和break完全不同:它不会终止整个循环,只会跳过当前这一轮循环里,continue后面的所有代码,直接跳回while开头,重新判断条件,进入下一轮循环。

简单说就是:break是“彻底不干了,循环结束”,continue是“这次的活不干了,直接开始下一次”。

它同样和if条件语句配合使用,用来跳过不需要执行的场景。

我们用同一个场景做示例,对比break的区别:

python  

# 循环打印1到10,遇到数字5就跳过,不打印,其他数字正常输出

i = 1

while i <= 10:

    # 循环变量更新,必须放在continue前面,否则会触发死循环!

    i += 1

    # 如果i等于5,就执行continue,跳过后面的print,直接进入下一轮循环

    if i == 5:

        print("跳过数字5,不打印")

        continue

    print(f"当前数字是:{i}")

print("循环结束")

运行这段代码你会发现,程序会打印1到10的所有数字,唯独跳过了5,循环没有终止,一直执行到i=10,条件不满足才结束。

【新手避坑红线】使用continue的时候,必须把循环变量的更新代码,放在continue的前面。如果像之前一样把i +=1放在continue后面,当触发continue的时候,i的更新代码会被跳过,i永远不会变化,循环条件永远是True,直接变成死循环,这是新手用continue时100%会踩的坑。

五、while循环的头号杀手:死循环,新手必看避坑指南

死循环是while循环里最常见、也最让新手头疼的问题,很多同学一运行死循环,就慌得不知道怎么办。今天我们就彻底讲透死循环,让你知道它是什么、为什么会出现、怎么规避、遇到了怎么处理。

1. 什么是死循环?

死循环,就是循环条件永远为True,循环永远不会终止,会一直执行循环体里的代码,直到程序崩溃、电脑卡死,或者你手动终止程序。

2. 新手最容易写出死循环的3个原因

1. 漏掉了循环变量的更新

这是最常见的原因,比如写循环的时候,忘了在循环体里写 i +=1 ,循环变量永远是初始值,循环条件永远为True。

错误示例:

python  

# 死循环!永远不会停止

i = 1

while i <= 5:

    print(i)

    # 漏掉了i +=1,i永远是1,条件永远是True

2. 循环条件永远为True,没有退出出口

很多同学会写 while True: 这种无限循环的格式,但是循环体里没有加if条件+break作为退出出口,程序就会永远循环下去。

错误示例:

python  

# 死循环!没有退出出口

while True:

    print("我会一直打印")

    # 没有加break,永远不会停止

这里要补充一句: while True: 不是错误写法,反而在实际开发中非常常用,只要你在循环体里设置了合理的if条件+break作为退出出口,就是完全正确的写法,后面的实战案例里我们会用到。

3. 循环变量更新错误,朝着条件永远成立的方向变化

比如应该让循环变量加1,结果写成了减1,i从1开始,越变越小,永远满足 i <=5 的条件,变成死循环。

错误示例:

python  

# 死循环!循环变量更新错误

i = 1

while i <= 5:

    print(i)

    i -= 1  # i越变越小,永远满足i<=5

3. 遇到死循环怎么办?

新手遇到死循环不要慌,在PyCharm里,只需要点击下方控制台里的红色正方形停止按钮,就能立刻强制终止程序运行,不会对电脑造成任何伤害。

4. 怎么从根源上规避死循环?

1. 写循环之前,先把循环三要素写全,尤其是循环变量的更新;

2. 写 while True: 的时候,必须先想好退出条件,在循环体里加上if+break;

3. 不确定循环是否正常的时候,先在循环体里加print打印循环变量,看看它的变化是否符合预期,没问题再写完整的循环体。

六、while循环经典实战案例,学了就能用

光懂语法没用,能解决实际问题才是关键。下面我们用3个最经典、最实用的场景,带你把while循环的知识点融会贯通,代码可以直接复制运行,也可以自己修改参数练手。

案例1:经典计算——1到100的累加和

这是学循环必做的经典案例,核心是用循环实现累加,后续做数据统计、求和计算都能用到。

需求:计算1+2+3+...+100的总和,用while循环实现。

python  

# 循环三要素1:定义循环变量和累加变量

i = 1

sum_total = 0  # 用来存储累加的总和,初始值为0

# 循环三要素2:循环终止条件

while i <= 100:

    # 循环体:把当前的i加到总和里

    sum_total += i

    # 循环三要素3:更新循环变量

    i += 1

# 循环结束后,打印最终的总和

print(f"1到100的累加和是:{sum_total}")

案例2:趣味实战——猜数字小游戏

这个案例完美结合了while循环+if条件判断,还有break关键字,有趣又实用,能帮你彻底吃透循环的逻辑。

需求:程序随机生成一个1-100之间的数字,用户反复猜数字,程序提示“猜大了”或“猜小了”,直到用户猜对了,就恭喜用户并结束游戏。

python  

# 导入随机数模块,生成1-100之间的随机数字

import random

target_num = random.randint(1, 100)

print("欢迎来到猜数字小游戏!")

print("我已经生成了一个1-100之间的数字,快来猜猜看吧!")

# 用while True做无限循环,猜对了就用break退出

while True:

    # 获取用户输入的数字,转成整数类型

    user_guess = int(input("请输入你猜的数字:"))

    # 用if条件判断用户猜的结果

    if user_guess > target_num:

        print("猜大了!再往小了试试")

    elif user_guess < target_num:

        print("猜小了!再往大了试试")

    else:

        print(f"恭喜你!猜对了!正确数字就是{target_num}")

        # 猜对了,执行break,终止循环

        break

案例3:实用场景——用户密码重试锁定机制

这个案例是我们日常上网随处可见的场景,结合了之前学的账号密码判断,用while循环控制重试次数,非常贴合实际开发。

需求:用户有3次输入密码的机会,输入正确就打印“登录成功”并结束程序;输入错误就提示剩余次数;3次全部输错,就打印“密码错误次数过多,账号已锁定”并结束。

python  

# 设定正确的密码

correct_password = "123456"

# 循环三要素1:定义重试次数变量,初始值为3

try_count = 3

# 循环三要素2:循环条件,还有重试次数就继续循环

while try_count > 0:

    # 每次循环,先扣除1次重试机会

    try_count -= 1

    # 获取用户输入的密码

    user_input = input("请输入你的密码:")

    # 判断密码是否正确

    if user_input == correct_password:

        print("密码正确,登录成功!欢迎回来")

        # 登录成功,直接break终止循环

        break

    else:

        # 密码错误,判断还有没有剩余次数

        if try_count > 0:

            print(f"密码错误!你还有{try_count}次输入机会")

        else:

            print("密码错误次数过多,你的账号已被锁定")

七、新手高频踩坑避坑指南

这里整理了Day7学while循环时,新手100%会遇到的报错和逻辑问题,提前讲清原因和解决方法,帮你少走弯路。

1. 缩进错误:IndentationError

和if语句一样,循环体的代码必须缩进4个空格,同一层级的代码缩进必须完全一致,否则要么直接报错,要么循环逻辑完全混乱。解决方法:严格遵守缩进规则,循环体里的所有代码统一缩进4个空格,循环外的代码顶格写。

2. 死循环

这个前面重点讲过,核心原因就是循环三要素不全、循环变量更新错误、while True没有加break退出出口。解决方法:写循环先凑齐三要素,循环变量更新放在循环体最前面,用continue的时候格外注意不要跳过变量更新。

3. 循环条件边界写错,多执行一次或少执行一次

比如要计算1到100的和,把循环条件写成 i < 100 ,就会漏掉100,结果少加了100。解决方法:写循环条件的时候,想清楚边界值,比如要包含100,就必须写 i <= 100 ,不确定的话,先打印循环变量看看范围是否正确。

4. break和continue用混,逻辑不符合预期

很多新手想跳过一次循环,结果用了break,直接把整个循环终止了。解决方法:牢牢记住两个关键字的区别,想彻底结束循环用break,想跳过当前这一次、继续下一次用continue。

5. 循环变量在循环体里被重新赋值,导致逻辑混乱

比如在循环体里重新定义了i=1,导致循环变量每次都被重置,变成死循环。解决方法:循环控制变量不要在循环体里重新赋值,只做递增/递减的更新。

6. while语句结尾忘了加英文冒号,触发语法报错

和if语句一样,while、if、elif、else的行尾,必须加英文冒号,新手很容易漏掉或者写成中文冒号。解决方法:写完条件就顺手加冒号,写完代码先检查所有标点都是英文格式。

八、今日课后作业(必做!只看不敲,永远学不会)

编程是一门实操技能,只有动手敲代码,才能真正把循环逻辑刻进脑子里。今天的作业循序渐进,全部完成,才算真正吃透while循环。

1. 基础必做:用while循环打印1到20之间的所有偶数,每个数字单独占一行。

2. 进阶练习:用while循环计算1到100之间,所有奇数的累加和,打印最终的结果。

3. 挑战练习:完善用户密码验证程序,需求:正确的用户名是admin,正确的密码是666666;用户先输入用户名,用户名错误直接提示“该用户不存在”并结束程序;用户名正确再输入密码,有3次输入密码的机会,输入正确提示登录成功,输错提示剩余次数,3次全错提示账号锁定。

4. 习惯养成:严格遵守缩进规则,给循环的三要素、核心逻辑都加上清晰的单行注释,变量名做到见名知意。

九、明日预告

Day8我们将学习Python的for循环+range函数,这是比while循环更常用、更简洁的循环方式,专门用来遍历序列、批量处理数据。

学完明天的内容,你就能轻松遍历字符串、列表等数据,实现更高效的循环操作,对比while和for循环的适用场景,在不同的需求里选择最合适的循环方式,彻底搞定Python循环的核心内容。

结尾互动

今天的while循环语句,你都学会了吗?

完成作业的同学,可以在评论区扣个【打卡Day7】!

遇到任何报错、循环逻辑搞不懂的问题,都可以在评论区留言,我会一一解答。

关注我,跟着30天计划,从零开始,彻底精通Python核心语法,每天1.5小时,30天就能独立写Python脚本,搞定日常办公自动化!

最新文章

随机文章