[英]Python indentation error in code
首先,請問有一個IDE可以處理縮進嗎? 其次,我的代碼中存在縮進錯誤。 誰能指出我的代碼中需要縮進的地方?
p = [0.2,0.2,0.2,0.2,0.2]
world = ['green','red','red','green','green']
z = 'red'
pHit = 0.6
pMiss = 0.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
print sense(p,z)
return
似乎不在正確的位置。 但是,您可以重新縮進代碼:
p = [0.2,0.2,0.2,0.2,0.2]
world = ['green','red','red','green','green']
z = 'red'
pHit = 0.6
pMiss = 0.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 # dedented
print sense(p,z)
在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
請注意,在前面提到的前兩行之前有兩個空格,在for循環的主體之前有六個空格。 每個縮進級別應為單個縮進的倍數。 因此,如果要使用兩個空格:
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
如果要使用四個空格:
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
單不在正確的位置。 此外,應在函數范圍內定義pHit
, pMiss
和world
變量:
def sense(p, z):
pHit = 0.6
pMiss = 0.2
world = ['green','red','red','green','green']
q = []
for i in range(len(p)):
hit = (z==world[i])
q.append(p[i] * (hit * pHit + (1 - hit) * pMiss))
return q
p = [0.2,0.2,0.2,0.2,0.2]
z = 'red'
print sense(p,z)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.