【10月更文挑战第18天】「Mac上学Python 29」基础篇10 - 循环结构与迭代控制

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 在Python中,循环结构是控制程序执行的重要工具。通过学习本篇内容,您将掌握如何使用for循环和while循环来高效地处理重复任务,并了解break、continue和else的使用方式。同时,我们还会探索嵌套循环和典型应用场景中的实际应用。

在Python中,循环结构是控制程序执行的重要工具。通过学习本篇内容,您将掌握如何使用for循环和while循环来高效地处理重复任务,并了解breakcontinueelse的使用方式。同时,我们还会探索嵌套循环和典型应用场景中的实际应用。


一、循环的基本结构

循环结构控制代码的重复执行,主要包括以下两种形式:

  1. for循环:用于遍历序列(如字符串、列表、元组)中的每个元素。
  2. while循环:基于条件判断,只要条件为真,循环就会持续执行。

二、for循环

for循环可以遍历任何可迭代对象。

2.1 遍历列表
fruits = ['苹果', '香蕉', '樱桃']
for fruit in fruits:
    print(fruit)

输出:

苹果  
香蕉  
樱桃

三、range() 函数

range()函数生成一个整数序列,常用于控制循环的迭代次数。它可以接收1至3个参数,根据参数数量不同,生成不同的整数序列。

3.1 一个参数的range()

只有一个参数时,range(n)生成从0到n-1的整数序列。

for i in range(5):
    print(f"range(5)的值 = {i}")

输出:

range(5)的值 = 0  
range(5)的值 = 1  
range(5)的值 = 2  
range(5)的值 = 3  
range(5)的值 = 4
调用 整数范围
range(5) 0~4
range(10) 0~9
range(11) 0~10

3.2 两个参数的range()

当有两个参数时,range(start, end)生成从startend-1的整数序列。

for i in range(1, 5):
    print(f"range(1,5)的值 = {i}")

输出:

range(1,5)的值 = 1  
range(1,5)的值 = 2  
range(1,5)的值 = 3  
range(1,5)的值 = 4

3.3 三个参数的range()

当有三个参数时,range(start, end, step)生成从start开始,每次递增(或递减)step的整数序列,直到接近end为止。

for i in range(1, 11, 2):
    print(f"range(1,11,2)的值 = {i}")

输出:

range(1,11,2)的值 = 1  
range(1,11,2)的值 = 3  
range(1,11,2)的值 = 5  
range(1,11,2)的值 = 7  
range(1,11,2)的值 = 9

四、while循环

4.1 计数循环
count = 0
while count < 5:
    print(count)
    count += 1

输出:

0  
1  
2  
3  
4

4.2 无限循环
while True:
    print("这是一个无限循环")
    break  # 强制退出循环

输出:

这是一个无限循环

五、循环控制语句

5.1 break语句

break用于立即终止循环。

for i in range(5):
    if i == 3:
        break
    print(i)

输出:

0  
1  
2

5.2 continue语句

continue用于跳过当前迭代,继续下一次循环。

for i in range(5):
    if i == 3:
        continue
    print(i)

输出:

0  
1  
2  
4

5.3 else语句

else在循环未被break打断时执行。

for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("循环正常结束")

输出:

0  
1  
2

六、嵌套循环

6.1 九九乘法表
for i in range(1, 10):
    for j in range(1, 10):
        print(f"{i}*{j}={i * j:2}", end="  ")
    print()

输出:

1*1= 1  
2*1= 2  2*2= 4  
3*1= 3  3*2= 6  3*3= 9  
...  
9*1= 9  9*2=18  ... 9*9=81

七、典型应用场景

7.1 计算正整数总和
sum = 0
n = int(input("请输入正整数:"))
for i in range(1, n + 1):
    sum += i
print(f"1 到 {n} 的整数和为 {sum}")

输入输出示例:

请输入正整数:5  
1 到 5 的整数和为 15

7.2 列表元素统计
fruits = ['苹果', '香蕉', '香蕉', '樱桃']
count = 0
for fruit in fruits:
    if fruit == '香蕉':
        count += 1
print(f"'香蕉'出现了 {count} 次")

输出:

'香蕉'出现了 2 次

7.3 用户输入验证
while True:
    number = int(input("请输入一个正数:"))
    if number > 0:
        print(f"你输入了正数:{number}")
        break
    else:
        print("输入无效,请重试。")

输入输出示例:

请输入一个正数:-1  
输入无效,请重试。  
请输入一个正数:10  
你输入了正数:10

7.4 列表推导式
squares = [x**2 for x in range(1, 6)]
print(squares)

输出:

[1, 4, 9, 16, 25]

八、小结

本篇全面讲解了Python中的循环结构及其控制方式。我们介绍了forwhile循环的基本用法,并详细说明了range()函数的多种使用方法。同时,展示了如何通过breakcontinueelse控制循环执行流程。此外,还通过九九乘法表等实际示例,演示了嵌套循环的应用。


上一篇: 「Mac上学Python 28」基础篇9 - 条件语句与逻辑判断

下一篇: 「Mac上学Python 30」基础篇11 - 高级循环技巧与应用


目录
相关文章
|
18天前
|
Java 索引 Python
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
54 5
|
20天前
|
数据安全/隐私保护 Python
【10月更文挑战第17天】「Mac上学Python 28」基础篇9 - 条件语句与逻辑判断
在Python中,条件语句和逻辑判断是控制程序执行流程的关键工具,帮助程序在不同条件下做出不同决策。通过本篇的学习,您将掌握单选、双分支、多选结构、单行条件表达式、条件嵌套、条件判断的类型和逻辑运算符的用法,从而更灵活地控制程序执行流程。
45 5
|
21天前
|
存储 算法 Python
【10月更文挑战第16天】「Mac上学Python 27」小学奥数篇13 - 动态规划入门
本篇将通过 Python 和 Cangjie 双语介绍动态规划的基本概念,并解决一个经典问题:斐波那契数列。学生将学习如何使用动态规划优化递归计算,并掌握编程中的重要算法思想。
87 3
|
23天前
|
Python
【10月更文挑战第15天】「Mac上学Python 26」小学奥数篇12 - 图形变换与坐标计算
本篇将通过 Python 和 Cangjie 双语实现图形变换与坐标计算。这个题目帮助学生理解平面几何中的旋转、平移和对称变换,并学会用编程实现坐标变化。
61 1
|
25天前
|
移动开发 数据可视化 Python
【10月更文挑战第13天】「Mac上学Python 24」小学奥数篇10 - 数列求和
本篇将通过 Python 和 Cangjie 双语实现数列求和的计算。通过这个题目,学生将学会如何通过公式法和循环法求解等差数列与等比数列的和。
63 3
|
23天前
|
算法 数据可视化 Python
【10月更文挑战第14天】「Mac上学Python 25」小学奥数篇11 - 最大公约数与最小公倍数
本篇将通过 Python 和 Cangjie 双语实现最大公约数(GCD)和最小公倍数(LCM)的计算。这个题目帮助学生理解如何运用数学算法,并将其与编程实现结合。
48 1
|
27天前
|
机器学习/深度学习 移动开发 Python
【10月更文挑战第11天】「Mac上学Python 22」小学奥数篇8 - 排列组合计算
本篇将通过 Python 和 Cangjie 双语讲解如何计算排列与组合。这道题目旨在让学生学会使用排列组合公式解决实际问题,并加深对数学知识和编程逻辑的理解。
58 4
|
26天前
|
数据可视化 Python
【10月更文挑战第12天】「Mac上学Python 23」小学奥数篇9 - 基础概率计算
本篇将通过 Python 和 Cangjie 双语实现基础概率的计算,帮助学生学习如何解决简单的概率问题,并培养逻辑推理和编程思维。
45 1
|
1天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####
|
1天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。