[英]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 docs和python style guide 。
該答案主要適用於遇到相同問題並偶然發現並在 Mac OS X 上使用 sublime text 3 的讀者。
您應該安裝支持 Python 語法的編輯器(或 IDE)。 它可以突出顯示源代碼並進行基本的格式檢查。 例如:Eric4、Spyder、Ninjia 或 Emacs、Vi。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.