作为普通变量使用
在循环中
for _ in range(10):
print(_)
执行结果:
0
1
2
3
4
在列表生成式中
ls = ["苹果" for _ in range(5)]
print(ls)
执行结果:
['苹果', '苹果', '苹果', '苹果', '苹果']
作为“丢弃变量”使用
这是最常见的用法之一。当你需要接收一个值,但后续完全不需要使用它时,可以用 _ 来命名这个变量,明确表示“这个值我不需要”。
场景1:解包时丢弃不需要的值
user_info = ("张三", 25, "北京", "13800138000")
name, age, _, _ = user_info # 只需要姓名和年龄,丢弃地址和电话
print(name, age) # 输出:张三 25
场景2:循环时不需要循环变量
for _ in range(5):
print("执行一次循环") # 输出5次"执行一次循环",无需关心循环次数变量
场景3:函数返回多值时丢弃部分值
def get_data():
return 100, 200, 300
result, _, _ = get_data() # 只取第一个返回值
print(result) # 输出:100
交互式解释器的“最后结果”
在 Python 交互式环境(比如终端直接输入 python 进入的环境、IPython、Jupyter)中,_ 会自动保存上一次执行代码的返回结果。
示例:
# 在交互式环境中执行:
>>> 10 + 20
30
>>> _ # 查看上一次的结果
30
>>> x = _ * 2
>>> x
60
数字分隔符(Python 3.6+)
可以用 _ 分隔数字的位数,提升可读性,不影响数值本身。
示例代码:
# 大数字分隔,更易读
num1 = 1_000_000 # 等价于 1000000
num2 = 0b1010_1100 # 二进制,等价于 0b10101100
num3 = 123_45.67_89 # 浮点数也支持
print(num1) # 输出:1000000
print(num2) # 输出:172
总结
Python 中的下划线 _ 核心用法可归纳为:
- 丢弃变量:接收不需要使用的值,是最常用的场景;
- 交互环境缓存:保存上一次执行的结果;
- 命名规范:单下划线开头(约定私有)、结尾(避关键字),双下划线开头(名称修饰);
- 数字分隔符:提升大数字的可读性(Python 3.6+)。
记住核心原则:_ 本身不是语法强制限制(除了双下划线开头的名称修饰),更多是“约定俗成”的编码规范,目的是让代码更易读、更符合 Python 风格。