当前位置: 首页 > news >正文

Python 循环语法详解

在编程中,循环是一种非常常见的控制结构。很多时候,我们需要重复做一些事情,比如遍历列表、处理数据、尝试直到成功等。这时候,就离不开循环了。Python 提供了两种主要的循环结构:for 循环 和 while 循环。本篇文章会从基础到进阶,带你全面掌握 Python 中的循环。

参考文章:Python 循环 | 简单一点学习 easyeasy.me

目录

  1. 什么是循环?
  2. for 循环基础用法
  3. while 循环基础用法
  4. 循环控制语句:break、continue、else
  5. 循环中的 range() 函数
  6. 遍历常见数据结构(列表、字典、集合、字符串)
  7. 嵌套循环
  8. 列表推导式中的循环
  9. 循环的常见坑和优化建议

1. 什么是循环?

循环就是让程序“重复做某件事”。比如:

print("Hello")
print("Hello")
print("Hello")

你可以用循环来写得更简单:

for i in range(3):print("Hello")

这样是不是清爽多了?


2. for 循环基础用法

for 循环常用于“遍历”一些东西,比如列表、字符串、字典等。

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:print(fruit)

输出:

apple
banana
cherry

变量名自定义

你不一定要用 fruit,变量名可以是你喜欢的,比如:

for x in fruits:print(x)

3. while 循环基础用法

while 循环的意思是:“只要这个条件成立,就一直重复执行”。

count = 0
while count < 5:print("count:", count)count += 1

注意:while 循环容易写成死循环,一定要注意循环条件会终止!


4. 循环控制语句:break、continue、else

break:提前跳出循环

for i in range(10):if i == 5:breakprint(i)

输出:

0
1
2
3
4

continue:跳过这次,继续下一次循环

for i in range(5):if i == 2:continueprint(i)

输出:

0
1
3
4

else:循环正常结束后才执行

for i in range(3):print(i)
else:print("循环结束了")

5. 循环中的 range() 函数

range() 是一个生成数字序列的函数,经常和 for 搭配用。

for i in range(5):print(i)

输出:

0
1
2
3
4

range 的几种写法:

range(stop)             # 从 0 到 stop-1
range(start, stop)      # 从 start 到 stop-1
range(start, stop, step)# 每次加 step,直到 stop 前结束

例如:

for i in range(2, 10, 2):print(i)

输出:

2
4
6
8

6. 遍历常见数据结构

列表

names = ["Alice", "Bob", "Charlie"]
for name in names:print(name)

字典

遍历键:

d = {"a": 1, "b": 2}
for key in d:print(key, d[key])

遍历键值对:

for key, value in d.items():print(key, value)

集合

s = {"a", "b", "c"}
for item in s:print(item)

字符串

for ch in "hello":print(ch)

7. 嵌套循环

循环里套循环,用于处理二维数据或复杂结构:

for i in range(3):for j in range(2):print(f"i={i}, j={j}")

输出:

i=0, j=0
i=0, j=1
i=1, j=0
i=1, j=1
i=2, j=0
i=2, j=1

8. 列表推导式中的循环

想一行生成列表?看这个:

squares = [x*x for x in range(5)]
print(squares)

输出:

[0, 1, 4, 9, 16]

加上条件:

evens = [x for x in range(10) if x % 2 == 0]
print(evens)

9. 循环的常见坑和优化建议

常见问题

  • 忘了更新变量导致死循环
  • 写错循环条件
  • 不小心修改了遍历的列表

小技巧

  • enumerate() 获取索引和值
  • zip() 同时遍历多个列表
  • 尽量避免嵌套循环太深,影响效率
    好的,以下是两个 enumerate() 和两个 zip() 的示例代码,不带额外解释:

enumerate() 示例 1:

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):print(index, fruit)

enumerate() 示例 2:

names = ['Tom', 'Jerry', 'Spike']
for i, name in enumerate(names, start=1):print(f"{i}. {name}")

zip() 示例 1:

names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
for name, score in zip(names, scores):print(f"{name}: {score}")

zip() 示例 2:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = ['x', 'y', 'z']
for a, b, c in zip(list1, list2, list3):print(a, b, c)
http://www.dtcms.com/a/316966.html

相关文章:

  • Pandas数据分析完全指南:从入门到实战应用
  • vi编辑器makefile的使用以及双向链表
  • Sklearn 机器学习 数据聚类 层次聚类的两个重要属性
  • c# 在 23:00 - 23:59 之间执行一次的写法
  • 【重要区分】2类模型的时间平均车速与区间平均车速
  • ApacheCon Asia 2025 中国开源年度报告:Apache Doris 国内第一
  • STM32设置GPIO模式
  • P1103《书本整理》精讲
  • CubeMX安装芯片包
  • Go语言 反射
  • golang的切片
  • Vue.js之核心语法与指令
  • 每日五个pyecharts可视化图表-bars(4)
  • mac colima解决容器化部署权限问题 :Permission denied
  • 三款好用的PDF阅读器
  • PLC学习之路-基础知识-(一)
  • 无刷电机控制 - STM32F405+CubeMX+HAL库+SimpleFOC05,完成霍尔传感器的校准
  • leetcode-python-删除链表的倒数第 N 个结点
  • 初始化列表,变量存储区域和友元变量
  • AcWing 3690:求交点 ← 复旦大学考研机试题 + 克莱姆法则
  • zyh贪心类题目补题报告
  • Spring配置JDBC,使用JdbcTemplate套件和Druid套件
  • IDEA JAVA工程入门
  • CVPR优秀论文 | DashGaussian:在200秒内优化三维高斯点绘制
  • Redis Windows迁移方案与测试
  • 嵌入式学习 双向链表 循坏链表 内核链表
  • Reading Books(Sorting and Searching)
  • Redis备份方案:持久化与外部工具全解析
  • G1系统概括
  • 电脑搜索不到公司无线网络