17370845950

python怎么显示行号
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(临时),或在 ~/.vimrcset 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]

在 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()}")

⚠️ 注意:这种方式读的是源码文本,不是运行逻辑,慎用于复杂场景。