Python中行号显示分两类:编辑器/IDE中显示(如VS Code、PyCharm等通过设置开启)和运行时打印(用inspect模块获取当前行号或封装log_line函数),报错时traceback默认含行号。
在 Python 中,代码本身不自带行号显示功能,但你可以在不同场景下实现行号显示,主要分两类:运行时打印行号(用于调试)、编辑器/IDE 中显示行号(用于编写代码)。
这是最常用的方式,不影响代码执行,仅方便阅读和定位:
Ctrl+Shift+P 输入 “Toggle Line Numbers” 回车File → Settings → Editor → General → Appearance → Show line numbers
View → Line Numbers,或快捷键 Ctrl+Shift+P 输入 “Line Numbers” 切换:set number(临时),或在 ~/.vimrc 加
set number(永久)适合在日志、报错或调试中动态获取代码执行位置:
inspect:import inspect
print(f"当前行号:{inspect.currentframe().f_lineno}")import inspect
def log_line():
frame = inspect.currentframe().f_back
print(f"[{frame.f_lineno}]")
使用示例
log_line() # 输出类似:[12]
Python 报错时默认就会显示文件名、行号和出错代码,无需额外设置:
Traceback (most recent call last): File "test.py", line 5, inprint(1 / 0) ZeroDivisionError: division by zero
其中 line 5 就是错误发生的行号。确保脚本保存为 .py 文件再运行,交互式环境(如直接在 Python 解释器里逐行输)可能不显示完整路径和行号。
如果真想让每行 print 都带编号(比如生成带序号的日志),可配合文件读取或计数器:
with open(__file__, 'r', encoding='utf-8') as f:
for i, line in enumerate(f, 1):
if 'print(' in line and 'log_line' not in line:
print(f"{i:3d}: {line.rstrip()}")⚠️ 注意:这种方式读的是源码文本,不是运行逻辑,慎用于复杂场景。