python缩进用空格还是tab

12次阅读

python必须统一用空格缩进(标准为4个),因其靠缩进定义代码块,混用空格与Tab会因编辑器Tab宽度解释差异导致IndentationError;PEP 8禁止Tab缩进,但允许字符串中使用t。

python缩进用空格还是tab

Python官方推荐用空格缩进,且标准缩进为4个空格。

为什么必须统一?

Python靠缩进来定义代码块,混用空格和Tab会导致IndentationError。即使看起来对齐,不同编辑器对Tab宽度的解释可能不同(比如设为2、4或8),实际字节数不一致,解释器会直接报错。

如何设置编辑器?

  • vs code:在右下角点击“Spaces: 4”,选“Convert Indentation to Spaces”
  • pycharm:File → Settings → Editor → Code Style → Python → “Use tab character”取消勾选,Tab size设为4
  • sublime Text:View → Indentation → Convert Indentation to Spaces,再设Indent using Spaces

检查和修复已有代码

可以用python -m py_compile script.py提前发现缩进问题;更直观的是用flake8black自动格式化:
pip install black && black your_file.py

特殊情况注意

PEP 8明确禁止Tab用于缩进,但允许在字符串字面量中使用Tab(如“t”)。如果团队已有历史代码用Tab,建议一次性全转为空格,避免长期混用。

text=ZqhQzanResources