IndentationError应为缩进的b

2024-04-19 12:59:02 发布

您现在位置:Python中文网/ 问答频道 /正文

这是密码

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

我的密码怎么了?


Tags: pyfalsetrue密码ifmaindefline
3条回答

如果你使用的是mac和sublime文本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上使用sublime text 3的读者

你混合了标签和空格。这会导致一些令人困惑的错误。

我建议只使用选项卡或只使用空格来缩进。

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


另外,您的代码比需要的更详细。而不是这个:

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

就这样做:

return str_p == str_q

您在这一行中似乎也有一个bug:

str_q = p[b+1:]

我让你去弄清楚错误是什么。

如果块中没有语句,也会发生此错误

例如:

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


def say_hello():
    return "hello"

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

相关问题 更多 >