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:循环正常结束时执行。
  • 嵌套循环:外层变一次,内层跑一圈。

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

相关推荐
金銀銅鐵3 小时前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li4 小时前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
杉氧8 小时前
深入理解 Compose 重组机制:快照系统如何驱动 UI 精准刷新?
android·架构·android jetpack
召钱熏8 小时前
状态枚举正确≠渲染正确:一个语音按钮的状态机边界修复实录
android·前端
杉氧9 小时前
深度解析:Jetpack Compose 核心架构与底层原理 —— 十年安卓老兵的“破茧重生”
android·架构·android jetpack
小九九的爸爸9 小时前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程
通玄9 小时前
Jetpack Compose 入门系列(七):ViewModel 与界面状态管理
android
落魄Android在线炒饭9 小时前
Android Framework 开发技巧:android.jar 生成与系统快速编译验证
android
阿耶同学10 小时前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员
如此风景10 小时前
Kotlin Flow操作符学习
android·kotlin