2012-03-04 144 views
0

試圖編寫一個獲取時鐘手形角度的函數,但在嘗試創建空列表時出現錯誤。它以前在其他腳本上工作過,沒有任何問題。嘗試創建新列表時出現語法錯誤

def gethandpos(): 
    now=datetime.datetime.now() 
    datetime.time(now.hour,now.minute,now.second) 
    m=float(now.minute+now.second/60) 
    h=float(now.hour+(m/60)) 
    hangle=math.fabs(((h*360)/12)-90) 
    mangle=math.fabs(((m*360)/60)-90) 
    sangle=(math.fabs((float((now.second*360)/60))-90) 
    coords=[] 
    coords.append((math.cos(math.radians(sangle)),math.sin(math.radians(sangle)))) 
    coords.append((math.cos(math.radians(mangle)),math.sin(math.radians(mangle)))) 
    coords.append((math.cos(math.radians(hangle)),math.sin(math.radians(hangle)))) 
    print coords 

輸出:

coords=[] 
    ^
syntax error: invalid syntax 

我究竟做錯了什麼?

+2

試試看行在控制檯中按行。 coords = []'行之前的行會出錯。 – 2012-03-04 21:44:57

回答

3
sangle=(math.fabs((float((now.second*360)/60))-90) 
     1   23  45    1 23 4 
+0

我只是想'回答'它...網站不會讓我..對不起。愚蠢的錯誤。謝謝。 – thekindlyone 2012-03-04 21:49:45

1

sangle=(math.fabs((float((now.second*360)/60))-90) 

在開頭處的附加開口括號。嘗試

sangle = math.fabs(float(now.second * 360/60) - 90) 

改爲。

Python忽略圓括號內的換行符。這就是爲什麼下面的行被解釋爲sangle賦值的一部分,導致語法錯誤。

我建議格式化你的代碼更可讀的方式:圍繞運營商使用的空間,不要使用太多的括號,他們是不必要的,分裂的複雜表達成多個步驟等

相關問題