我正在尝试编写我的第一个python脚本。这是有效的,但经过一些轻微的重构,我显然已经打破了缩进。我无法确定是什么问题。口译员抱怨以下方法。有人能说出来吗?
def dataReceived(self, data):
a = data.split(':')
print a
if len(a) > 1:
command = a[0]
content = a[1]
msg = ""
if command == "iam":
self.name = content
msg = self.name + " has joined"
elif command == "msg":
msg = self.name + ": " + content
print msg
错误如下:文件“python_server.py”,第17行 a = data.split(':') ^ IndentationError:预期缩进块
答案 0 :(得分:47)
我在使用Sublime Text 2时遇到了类似的问题。
要解决此问题,请单击编辑器底部的“选项卡大小”,然后选择“将缩进转换为选项卡”。
答案 1 :(得分:3)
您开始使用允许显示缩进的文本编辑器,并且您对使用空格而不是制表符保持一致,并在编辑器中强制执行。
答案 2 :(得分:3)
你可以在这里做很多事情:
vi
和set list
)。od -xcb
这样的十六进制转储程序。答案 3 :(得分:0)
尝试使用Editra - www.editra.org
您的代码看起来很好,语法似乎很好......您的文本编辑器可能正在创建您的错误。使用Editra查看文件以查看/查看缩进级别。
Editra保存了我的理智 - 我认为在文本编辑器中查看我的脚本时我有正确的语法,包括带有python indent插件的Notepad ++。但是,当我运行脚本时,它每次都会抛出缩进错误。我终于在Editra中打开了脚本,我可以看到问题所在。 Notepad ++和其他文本编辑器没有显示正确的缩进/制表符/空格。 Editra显示错误,例如意外的空格,标签 - 我能够纠正。
Editra将自动缩进您的脚本[并显示错误-tabs,space-可能不会显示在其他文本编辑器中]。
如果您有缩进错误,它将显示为带蓝色下划线的段;
如果您正在编写脚本[添加/删除行],Editra将自动缩进脚本。
**我建议您打开脚本并在Editra中进行编辑。
希望这有帮助! 祝你好运。 str8arrow
答案 4 :(得分:0)
如果您正在使用" Sublime Text 2"编辑器,然后我发现这个答案很有帮助 - 它详细说明了如何打开空格字符并将标签转换为空格