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,敬请期待!

相关推荐
孟健5 小时前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞7 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽10 小时前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers
阿巴斯甜13 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker14 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
敏编程14 小时前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪14 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
databook14 小时前
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
python·动效
xq952715 小时前
Andorid Google 登录接入文档
android
黄林晴16 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack