IndentationError预期的缩进块

IndentationError预期的缩进块

问题描述:

下面是代码:IndentationError预期的缩进块

def myfirst_yoursecond(p,q): 

a = p.find(" ") 
b = q.find(" ") 
str_p = p[0:a] 
str_q = p[b+1:] 

if str_p == str_q: 
    result = True 
else: 
    result = False 
return result 

以下是错误:

Traceback (most recent call last): 
File "vm_main.py", line 26, in <module> 
import main 
File "/tmp/vmuser_ssgopfskde/main.py", line 22 
result = False 
^ 
IndentationError: expected an indented block 

这有什么错我的代码?

您混合了制表符和空格。这可能会导致一些令人困惑的错误。

我建议使用只有选项卡或只有压痕的空间。

只使用空格通常是更容易的选择。大多数编辑器都有自动将制表符转换为空格的选项。如果您的编辑器有此选项,请将其打开。


另外,您的代码比需要的更冗长。取而代之的是:

if str_p == str_q: 
    result = True 
else: 
    result = False 
return result 

只是这样做:

return str_p == str_q 

也似乎对这一行的错误:

str_q = p[b+1:] 

我将离开你找出什么错误是。

+0

谢谢!有用! Python不支持这两种缩进。这听起来很奇怪。 – Sam 2012-04-20 00:49:17

+0

它实际上支持8-space选项卡,但是坚持使用空格会更好,尤其是当您的代码在编辑器和系统之间移动时(您应该期待它。) – zigg 2012-04-20 00:56:04

+0

对不起。我已将其更改为q [b + 1:]。你真的很乐意帮助我。 – Sam 2012-04-20 01:27:26

您应该安装支持Python语法的编辑器(或IDE)。它可以突出显示源代码并进行基本格式检查。例如:Eric4,Spyder,Ninjia或Emacs,Vi。

+0

我在windows中使用Pyscripter。因为我必须在Windows中做其他工作,尽管我真的很喜欢使用linux。 – Sam 2012-04-20 01:33:22

如果你使用的是一个mac和崇高的文本3,这就是你所做的。

转到您的/Packages/User/并创建一个名为Python.sublime-settings的文件。

如果您使用的是mac os x,通常/Packages/User位于您的~/Library/Application Support/Sublime Text 3/Packages/User/Python.sublime-settings之内。

然后你把这个放在Python.sublime-settings

{ 
    "tab_size": 4, 
    "translate_tabs_to_spaces": false 
} 

幸得马克·拜尔的answersublime text 3 docspython style guide

这个答案主要是为读者谁有同样的问题和这跌跌Mac OS X上使用的是崇高的文本3

,如果你在它有没有语句块也会出现此错误

例如:

def my_function(): 
    for i in range(1,10): 


def say_hello(): 
    return "hello" 

注意,for块是空的。如果要测试模块中的其余代码,则可以使用pass语句。

+1

我正在寻找类似于bash的':'声明的陈述,不容易为此制定搜索词;马上来到这里,你的回答脱颖而出,提到了我不知道的传球。因此,一个。谢谢。 – Roadowl 2015-06-29 20:45:16

我得到了同样的错误,这是我做了什么来解决这个问题。

缩进之前:

enter image description here

缩进错误:预期的缩进块。

后缩进:

enter image description here

做工精细。 TAB空间后。