
在 Python 中,若 for 循环仅用于重复执行某操作而无需使用索引值,应使用下划线 _ 代替变量名(如 i),以明确表达“该变量被有意忽略”,提升代码可读性与规范性。
在 python 中,若 for 循环仅用于重复执行某操作而无需使用索引值,应使用下划线 `_` 代替变量名(如 `i`),以明确表达“该变量被有意忽略”,提升代码可读性与规范性。
当你需要重复执行一段逻辑 N 次(例如打印日志、初始化资源、触发测试动作等),但完全不依赖当前迭代序号时,硬编码一个无意义的变量名(如 i, j, idx)不仅冗余,还可能误导读者——让人误以为后续会用到该值,甚至引发静态检查工具(如 pylint、flake8)发出 unused-variable 警告。
✅ 正确且 Pythonic 的写法是使用单个下划线 _:
def repeat_three_times():
for _ in range(3):
print("This is clean and intentional.")
_ 在 Python 社区中是公认的“丢弃变量”(throwaway variable)约定,广泛用于:
- 循环计数(无需索引)
- 解包时忽略部分值(如
x, _, z = (1, 2, 3)) - 国际化函数占位(如
gettext.gettext中的_)
⚠️ 注意事项:
- 不要写成
for __ in range(3):或for i in range(3):(当i确实未被使用)——前者语义不清,后者违反约定并可能触发 linter 报错; - 若需索引参与逻辑(如构建带序号的日志、条件跳过第 N 次),则应使用有意义的变量名(如
i,step,attempt)并实际使用它; -
range(n)本身已清晰表达了“执行 n 次”,无需额外注释说明意图。
? 进阶提示:对于更复杂的重复场景(如带状态重试、定时轮询),建议封装为独立函数或使用 itertools.repeat()(适用于固定对象重复):
from itertools import repeat
# 等价于 for _ in range(3):
for _ in repeat(None, 3):
do_something()
但对简单计数场景,for _ in range(n): 仍是首选——简洁、直观、符合直觉,且被所有主流 Python 风格指南(PEP 8 及 Black、Ruff 等工具)默认支持。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











