python中行号显示分两类:编辑器/ide中显示(如vs code、pycharm等通过设置开启)和运行时打印(用inspect模块获取当前行号或封装log_line函数),报错时traceback默认含行号。

在 Python 中,代码本身不自带行号显示功能,但你可以在不同场景下实现行号显示,主要分两类:运行时打印行号(用于调试)、编辑器/IDE 中显示行号(用于编写代码)。
在编辑器或 IDE 中显示行号
这是最常用的方式,不影响代码执行,仅方便阅读和定位:
- VS Code:右键编辑区左侧空白处 → 勾选“显示行号”,或按
Ctrl+Shift+P输入 “Toggle Line numbers” 回车 - PyCharm:右键编辑器左侧边栏 → 勾选 “Show Line Numbers”,或进入
File → Settings → Editor → General → appearance → Show line numbers - sublime Text:菜单栏
View → Line Numbers,或快捷键Ctrl+Shift+P输入 “Line Numbers” 切换 - vim / Neovim:命令模式输入
: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 中看到行号
Python 报错时默认就会显示文件名、行号和出错代码,无需额外设置:
Traceback (most recent call last): File "test.py", line 5, in print(1 / 0) ZeroDivisionError: division by zero
其中 line 5 就是错误发生的行号。确保脚本保存为 .py 文件再运行,交互式环境(如直接在 Python 解释器里逐行输)可能不显示完整路径和行号。
在 print 输出中手动加行号(不推荐,仅特殊需求)
如果真想让每行 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()}")
⚠️ 注意:这种方式读的是源码文本,不是运行逻辑,慎用于复杂场景。