Python基础(4)| 玩转循环结构:for、while与嵌套循环全解析(附源码)

【前言】

大家好!在之前的章节中,我们学习了顺序结构和选择结构,程序已经可以按部就班地做判断了。但如果我们要让计算机重复做一件事情1000次,难道要写1000行代码吗?当然不!今天我们来学习Python中非常重要的循环结构。

Python中的循环结构主要分为两类:遍历循环for和无限循环while。掌握这两种循环,你就拥有了让计算机"不知疲倦"工作的能力。

一、遍历循环 for

for循环通常用于遍历序列(如字符串、列表、range对象)。
1. 基本语法

python 复制代码
for 循环变量 in 遍历对象:
    语句块

2. 实战演练

  • 场景1:遍历字符串
    我们先来看最简单的例子,遍历字符串中的每一个字符。

    python 复制代码
    # 【示例4-9】
    for i in 'hello':
        print(i)
  • 场景2:使用range()函数
    range()函数可以生成一个整数序列,是for循环的最佳搭档。语法为range(start, end, step)。
    比如,我们要计算1到10之间所有偶数的和:

    python 复制代码
    s = 0
    for i in range(1, 11): # 产生1到10的整数
        if i % 2 == 0:
            print(i, '是偶数')
  • 场景3:经典案例------寻找水仙花数
    水仙花数是指一个3位数,其各位数字立方和等于该数本身。这是for循环练手的经典案例。

    python 复制代码
    for i in range(100, 1000):
        sd = i % 10         # 个位
        tens = i // 10 % 10  # 十位
        hundred = i // 100   # 百位
        if sd**3 + tens**3 + hundred**3 == i:
            print(i)
二、for循环的扩展形式:for...else

else语句在循环结束后执行,但前提是循环没有被break终止(关于break我们下节讲,这里先了解)。

python 复制代码
# 【示例4-10】
s = 0
for i in range(1, 11):
    s += i
else:
    print('1-10之间的累加和为:', s)

注意:只有当for循环正常遍历完所有元素后,else里的代码才会执行。

三、无限循环 while

while循环是根据条件来控制的,只要条件为真(True),就一直循环。
1. 基本语法

python 复制代码
while 表达式:
    语句块


2. while循环的四个重要步骤(避免死循环)

在使用while循环时,必须牢记四个步骤,否则程序会陷入"死循环":

  1. 初始化变量:给循环变量赋初值。
  2. 条件判断:决定是否进入循环。
  3. 语句块:执行具体的逻辑。
  4. 改变变量 :更新循环变量,使条件最终能变为False。
    3. 实战演练
  • 案例1:计算1-100累加和

    python 复制代码
    # 【示例4-11】
    i = 1      # (1) 初始化变量
    s = 0
    while i <= 100: # (2) 条件判断
        s += i  # (3) 语句块
        i += 1  # (4) 改变变量(关键!)
    print('1-100之间的累加和:', s)
  • 案例2:模拟用户登录(三次机会)
    这是实际开发中非常常见的逻辑:限制尝试次数。

    python 复制代码
    # 【示例4-13】
    i = 0
    while i < 3:
        user_name = input('请输入您的用户名:')
        pwd = input('请输入您的密码:')
        if user_name == 'ysj' and pwd == '888888':
            print('系统正在登录,请稍后')
            break  # 登录成功直接退出
        else:
            if i < 2:
                print('用户名或密码不正确,您还有', 2-i, '次机会')
        i += 1
    if i == 3:
        print('对不起,三次均输入错')


四、嵌套循环

如果一个循环的循环体中又包含了另一个循环,这就是嵌套循环。嵌套循环常用于处理二维数据(如表格、矩阵)或打印图形。

  • 案例:打印九九乘法表(长方形)
    外层控制行,内层控制列。

    python 复制代码
    # 【示例4-14】
    for i in range(1, 4):
        for j in range(1, 5):
            print('*', end='')
        print() # 换行
  • 进阶案例:打印菱形(空心菱形)
    使用嵌套循环配合条件判断可以打印出复杂的图形,这对理解逻辑非常有帮助。

    python 复制代码
    # 【示例4-16】菱形
    row = eval(input('请输入菱形的行数'))
    # ... 代码逻辑

【总结】

  • for循环:适合已知循环次数或遍历序列的情况。
  • while循环:适合根据条件判断循环次数的情况,记得四个步骤!
  • for...else:循环正常结束时执行。
  • 嵌套循环:外层变一次,内层跑一圈。

下一节我们将学习控制循环跳转的break和continue,敬请期待!

相关推荐
蹊黎21 分钟前
C++中vector类的部分简单实现
开发语言·c++·visual studio
IT_Octopus5 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
2603_965148116 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
程序猿追6 小时前
kotlin-retry 接入鸿蒙后,怎样确认它真的会停止重试
开发语言·kotlin·harmonyos
我是人✓6 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
智能直播6 小时前
网络RTMP拉流不卡顿、声音不同步,一文讲透缓冲区、时间戳
开发语言·ffmpeg·php·音视频·视频编解码
CCblandy7 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
墨云安全7 小时前
内网资产无法暴露到公网,怎么做安全检测?2026 年内网渗透测试的落地路径
开发语言·安全·网络安全·渗透测试·php
摇滚侠8 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
Cc.Y8 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python