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

相关推荐
ytttr87318 小时前
MATLAB的流体动力学与热传导模拟仿真实现
开发语言·matlab
努力变大白18 小时前
借助AI零基础快速学会Python爬取网页信息-以天眼查爬虫为例
人工智能·爬虫·python
山上三树18 小时前
详细介绍 C 语言中的 #define 宏定义
c语言·开发语言·算法
_Rookie._18 小时前
关于迭代协议:可迭代协议和迭代器协议,生成器函数 生成器对象的理解
javascript·python
农夫山泉2号18 小时前
【rk3588】——在rk3588上,用python进行qwen3-vl模型推理
python·flask·rk3588·qwen3-vl
测试游记18 小时前
基于 FastGPT 的 LangChain.js + RAG 系统实现
开发语言·前端·javascript·langchain·ecmascript
小罗和阿泽18 小时前
java 【多线程基础 三】
java·开发语言
ulias21218 小时前
AVL树的实现
开发语言·数据结构·c++·windows
想你依然心痛18 小时前
从x86到ARM的HPC之旅:鲲鹏开发工具链(编译器+数学库+MPI)上手与实战
java·开发语言·arm开发·鲲鹏·昇腾