【问题标题】:Unexpected Indent when defining variable定义变量时意外缩进
【发布时间】:2012-09-28 23:51:27
【问题描述】:

我是 Python 新手,它只是让我对缩进错误感到困惑。在下面的图片中,为什么第一个有效,而第二个给我一个缩进错误?

作品:

不起作用:(注意 Notepad++ 中弹出的额外树扩展器)

错误:

  File ".\sigma.py", line 14
    for val in vs:
    ^
IndentationError: unexpected indent

我正在使用记事本++,并且在任何地方都没有空格/制表符问题。此外,在 Python 控制台上进行了尝试,在第二张图像中以完全相同的方式键入它。它工作正常。我猜这有一个非常合乎逻辑的解释,但是来自强类型背景(Java 5 年以上),这感觉像是一个不必要的错误。

【问题讨论】:

  • 您确定没有混合制表符和空格吗?尝试撤消和重做缩进
  • 我一直使用 NPP 进行 python 编程,但我从未见过错误的[-],也没有遇到过你描述的问题。你的标签设置是什么?
  • 我能够在 Notepad++ 中重现这一点的唯一方法是使用混合缩进(制表符和空格)。我很确定这是这里的问题。这不是一个“不必要的”错误,因为缩进是 Python 语法的重要组成部分。
  • 是的,制表符和空格问题是正确的。我的印象是我在 Notepad++ 中启用了它,但事实并非如此。谢谢!

标签: python python-2.7 indentation


【解决方案1】:

您正在混合制表符和空格。不要这样做,它会产生不一致的缩进问题。

通过选项卡检查器运行您的脚本:

python -tt script.py

并修复所有选项卡(替换为空格),然后将编辑器配置为仅使用空格。

对于记事本++,请参阅:

【讨论】:

  • @Cfreak:样式指南指定仅使用空格是有原因的。没有人能就标签的视觉大小达成一致,它们不够显眼,并且“它们节省空间”的论点在当今的存储容量下不再成立。最重要的是,它们会导致像 OP 刚刚遇到的问题。
  • @MartijnPieters *no one
  • @NullUserException:我声称是外国人。 :-P 英语不是我的母语,所以如果我大声而缓慢地说,会有帮助吗? :-) 有时,我会混淆语法和拼写,尤其是因为我也不再住在我的祖国,而且当地语言是另一种日耳曼语,在说话或说话时有很多微妙的陷阱让我陷入用关系模糊的外语写作..
  • 我相当确定我在 notepad++ 中启用了空格制表符。原来它是在我的工作笔记本电脑里,而不是我个人的笔记本电脑里。这解决了问题,谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 2012-12-23
相关资源
最近更新 更多