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

相关推荐
爱喝可乐的老王2 分钟前
PyTorch简介与安装
人工智能·pytorch·python
wbs_scy6 分钟前
C++11:类新功能、lambda与包装器实战
开发语言·c++
看我干嘛!6 分钟前
第三次python作业
服务器·数据库·python
deephub7 分钟前
用 PyTorch 实现 LLM-JEPA:不预测 token,预测嵌入
人工智能·pytorch·python·深度学习·大语言模型
毕设源码-朱学姐20 分钟前
【开题答辩全过程】以 基于安卓的教师上课辅助系统为例,包含答辩的问题和答案
android
2301_7657031422 分钟前
C++中的职责链模式实战
开发语言·c++·算法
我的xiaodoujiao31 分钟前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--将自动化测试结果自动推送至钉钉工作群聊
前端·python·测试工具·ui·pytest
沈浩(种子思维作者)31 分钟前
铁的居里点(770度就不被磁铁吸了)道理是什么?能不能精确计算出来?
人工智能·python·flask·量子计算
yufuu9833 分钟前
使用Scikit-learn进行机器学习模型评估
jvm·数据库·python
f狐0狸x36 分钟前
【C++修炼之路】C++ list容器基本用法详解
开发语言·c++·list