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

Python 编程技巧 @ 玩转 For 循环

一、什么是 for 循环?

`for` 循环是 Python 中用于 遍历可迭代对象(如列表、字符串、字典等)的循环结构。  

- 核心作用:逐个访问序列中的元素,直到遍历完所有元素或循环被终止。

- 对比 `while` 循环:`for` 循环更适合已知迭代次数或需要遍历集合的场景,而 `while` 循环更适合条件控制的循环。

---

二、基本语法

```python

for 变量 in 可迭代对象:

    循环体代码

```

#示例 1:遍历列表

```python

fruits = ["apple", "banana", "cherry"]

for fruit in fruits:

    print(fruit)

```

输出:

```

apple

banana

cherry

```

---

三、常见用法

#1. 遍历字符串

```python

for char in "Hello":

    print(char)

```

输出:

```

H

e

l

l

o

```

#2. 结合 range() 函数

`range()` 生成一个整数序列,常用于控制循环次数。

```python

# 打印 0 到 4

for i in range(5):

    print(i)

# 指定起始和结束值(含头不含尾)

for i in range(2, 6):

    print(i)  # 输出 2,3,4,5

# 指定步长

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

    print(i)  # 输出 1,3,5,7,9

```

#3. 遍历字典

默认遍历字典的键(keys),可用 `.items()` 遍历键值对。

```python

person = {"name": "Alice", "age": 30, "city": "New York"}

# 遍历键

for key in person:

    print(key)  # 输出 name, age, city

# 遍历键值对

for key, value in person.items():

    print(f"{key}: {value}")

```

#4. 嵌套循环

处理多维数据(如二维列表)时常用。

```python

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for row in matrix:

    for num in row:

        print(num, end=" ")

    print()

```

输出:

```

1 2 3

4 5 6

7 8 9

```

---

四、循环控制语句

#1. `break`:提前终止循环

```python

for num in [1, 2, 3, 4, 5]:

    if num == 3:

        break

    print(num)  # 输出 1, 2

```

#2. `continue`:跳过当前迭代

```python

for num in [1, 2, 3, 4, 5]:

    if num % 2 == 0:

        continue

    print(num)  # 输出 1, 3, 5

```

#3. `else` 子句

当循环正常结束(未被 `break` 终止)时执行。

```python

for num in [1, 3, 5]:

    if num % 2 == 0:

        print("发现偶数")

        break

else:

    print("未发现偶数")  # 输出:未发现偶数

```

---

五、列表推导式(简洁写法)

将 `for` 循环简化为一行代码生成列表。

```python

# 生成平方数列表

squares = [x2 for x in range(1, 6)]

print(squares)  # 输出 [1, 4, 9, 16, 25]

# 带条件的推导式

even_squares = [x2 for x in range(10) if x % 2 == 0]

```

---

六、常见问题与注意事项

1. 不要修改正在遍历的列表  

   遍历时增删元素可能导致意外结果。若需修改,建议遍历副本:

   ```python

   for item in list.copy():

       if condition:

           list.remove(item)

   ```

2. 避免无限循环  

   `for` 循环通常不会无限循环,但需确保可迭代对象是有限的。

3. 优先直接迭代元素  

   无需通过索引访问时,直接遍历元素更简洁:

   ```python

   # 不推荐

   for i in range(len(fruits)):

       print(fruits[i])

   # 推荐

   for fruit in fruits:

       print(fruit)

   ```

---

七、总结

- `for` 循环用于遍历可迭代对象。

- 结合 `range()` 控制循环次数,结合 `break`/`continue` 控制流程。

- 列表推导式可简化生成列表的逻辑。

通过练习逐步掌握这些用法,即可高效处理大部分迭代任务!

http://www.xdnf.cn/news/478153.html

相关文章:

  • Linux `ps` 命令深度解析与高阶应用指南
  • 简单介绍C++中线性代数运算库Eigen
  • 【未完】【GNN笔记】EvolveGCN:Evolving Graph Convolutional Networks for Dynamics Graphs
  • sqli-labs靶场29-31关(http参数污染)
  • ECPF 简介
  • python爬虫实战训练
  • vscode debug node + 前端
  • 学习51单片机02
  • Vue.js---计算属性computed和lazy
  • 简单图像自适应亮度对比度调整
  • 【Python-Day 14】玩转Python字典(上篇):从零开始学习创建、访问与操作
  • Flutter目录结构介绍、入口、Widget、Center组件、Text组件、MaterialApp组件、Scaffold组件
  • 【RK3588嵌入式图形编程】-Cairo-绘图基础-线条
  • Armijo rule
  • 从另一个视角理解TCP握手、挥手与可靠传输
  • k8s灰度发布
  • MES系统与ERP、SCM、QMS、APS系统的关系
  • 蓝牙网关都有哪些型号?
  • 【笔记】记一次PyCharm的问题反馈
  • PyTorch 的 F.scaled_dot_product_attention 返回Nan
  • 微服务初步学习
  • 变量赋值和数据类型
  • Git 笔记
  • 将已打包好的aar文件,上传到 Coding 的 Maven 仓库
  • uniapp实现在线pdf预览以及下载
  • node.js文件系统(fs) - 创建文件、打开文件、写入数据、追加数据、读取数据、创建目录、删除目录
  • 鸿蒙NEXT开发动画案例10
  • 账号风控突破:云手机设备指纹篡改检测与反制技术解析
  • 学习日志38-cpelx求解器使用
  • 前端脚手架开发指南:提高开发效率的核心操作