2012-04-20 9 views

答えて

28

タブとスペースが混在しています。これにより、混乱するようなエラーが発生する可能性があります。

のみタブまたはインデント用のスペースを使用することをお勧めします。

一般にスペースのみを使用する方が簡単です。ほとんどのエディタには、自動的にタブをスペースに変換するオプションがあります。エディタにこのオプションがある場合は、オンにします。


あなたのコードは、必要以上に冗長です。

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

+0

実際には8桁のタブをサポートしていますが、特にコードがエディタとシステムの間を移動する場合(特に期待している場合)は、ちょうどスペースに固執するほうがずっと良いです。 – zigg

+0

すみません。私はそれをq [b + 1:]に変更しました。私をたくさん助けてくれて本当に親切です。 – Sam

0

Python構文をサポートするエディタ(またはIDE)をインストールする必要があります。ソースコードを強調表示し、基本的なフォーマットチェックを行うことができます。 例:Eric4、Spyder、Ninjia、またはEmacs、Vi。

+0

私はWindowsのユーザPyscripterです。私は窓で他の仕事をしなければならないので、私は本当にLinuxを好きです。 – Sam

1

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を使用している読者のために、大部分であるあなたがそれに無い文とブロックを持っている場合、このエラーも発生し

6

例えば

forブロックが空であることを

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


def say_hello(): 
    return "hello" 

注意。モジュール内の残りのコードをテストする場合は、passステートメントを使用できます。

+1

私はbashの ':'ステートメントに似たステートメントを探していました。すぐにここに来て、あなたの答えは、私が知らなかった合格点に言及することに対して際立っています。したがって、1つ上。ありがとうございました。 – Roadowl

0

私は同じエラーを受けました。これが私が問題を解決するために行ったことです。インデントの前に

enter image description here

インデントエラー:予想インデントブロック。微細加工

enter image description here

:インデント後

。 TABスペースの後。

関連する問題