为何代码在Jupyter Notebook正常运行,.py文件却报缩进错误?
解决Jupyter Notebook转.py文件的缩进错误问题
- 直接从Notebook导出标准.py文件:不要手动复制粘贴代码,用Jupyter自带的导出功能处理——在Notebook界面点击「File」→「Download as」→「Python (.py)」,导出的文件会自动统一缩进格式,避免手动复制引入的隐形格式问题。
- 用编辑器强制统一缩进风格:如果已经有出错的.py文件,打开后全选代码,用编辑器的缩进转换功能(比如VS Code按Ctrl+Shift+P,输入「Convert Indentation to Spaces/Tabs」,选择统一用4空格或1制表符),强制将所有缩进转换成同一格式。
- 检测隐形异常空白字符:有些非标准空白字符(比如全角空格)肉眼难分辨,可通过Python脚本排查:
运行脚本找到异常字符后,替换成正常空格或制表符即可。import sys with open("你的报错文件.py", "r") as f: for line_num, line in enumerate(f, 1): for char_pos, char in enumerate(line, 1): if char in (" ", "\t", "\n"): char_code = ord(char) if char_code not in (32, 9, 10): print(f"第{line_num}行第{char_pos}列存在异常空白字符,ASCII码:{char_code}") - 对比缩进字符的ASCII码:针对报错行和其上方的正常行,提取缩进部分打印ASCII码,确认是否一致:
如果输出的列表不一致,说明两行缩进用了不同字符,统一成相同格式即可。# 替换成你代码里的缩进内容 error_line_indent = " 报错行的缩进部分" normal_line_indent = " 上一行的缩进部分" print([ord(c) for c in error_line_indent]) print([ord(c) for c in normal_line_indent])
内容的提问来源于stack exchange,提问作者Ricardo de Abreu
相关产品推荐
相关产品推荐

