簡體   English   中英

IndentationError 需要一個縮進塊

[英]IndentationError expected an indented block

這是代碼:

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:]

我會讓你弄清楚錯誤是什么。

如果塊中沒有語句,也會發生此錯誤

例如:

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


def say_hello():
    return "hello"

請注意for塊是空的。 如果要測試模塊中的其余代碼,可以使用pass語句。

如果您使用的是 mac 和 sublime text 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
}

歸功於 Mark Byer 的回答sublime text 3 docspython style guide

該答案主要適用於遇到相同問題並偶然發現並在 Mac OS X 上使用 sublime text 3 的讀者。

我遇到了同樣的錯誤,這就是我為解決問題所做的。

縮進前:

在此處輸入圖片說明

縮進錯誤:需要一個縮進的塊。

縮進后:

在此處輸入圖片說明

工作正常。 在 TAB 空格之后。

您應該安裝支持 Python 語法的編輯器(或 IDE)。 它可以突出顯示源代碼並進行基本的格式檢查。 例如:Eric4、Spyder、Ninjia 或 Emacs、Vi。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM