Python では、タブまたはスペースをインデントとして使用できますが、使用するものとその数に一貫性を持たせる必要があります。以下を詳しく見てください。
def sense(p, z):
q=[]
for i in range(len(p)):
hit = (z==world[i])
q.append(p[i]*(hit*pHit + (1-hit)*pMiss))
return q
returnステートメントが所属する場所であるかどうかにかかわらず、問題は行にあります
q=[]
for i in range(len(p)):
に関連して
for i in range(len(p)):
hit = (z==world[i])
q.append(p[i]*(hit*pHit + (1-hit)*pMiss))
return q
上記の最初の 2 行の前に 2 つのスペースがあり、for ループの本体の前に 6 つのスペースがあることに注意してください。すべてのインデント レベルは、1 つのインデントの倍数である必要があります。したがって、2 つのスペースを使用する場合は、次のようになります。
def sense(p, z):
q=[]
for i in range(len(p)):
hit = (z==world[i])
q.append(p[i]*(hit*pHit + (1-hit)*pMiss))
return q
4 つのスペースを使用する場合は、次のようにします。
def sense(p, z):
q=[]
for i in range(len(p)):
hit = (z==world[i])
q.append(p[i]*(hit*pHit + (1-hit)*pMiss))
return q
私は通常 4 つを使用し、タブ文字を 4 つのスペースにマップするように環境をセットアップします。
そうは言っても...私もreturnステートメントを移動することに同意します。しかし、少なくともこれで、コードを実行して、移動するかどうか、または移動する理由を把握できます。
おそらくPEP-8のすべてを読む必要がありますが、特にインデントに関するセクションを読んでください。