2014-09-30 25 views
1
def decode(string): 
    L=float(string[0]) 
    if (L==4): 
     messageFrom4=[[string[0::L], string[1::L], string[2::L], string[3::L]] 
     return messageFrom4 
    if L!=4: 
     return messageFrom4[0:L] 

第二個返回是突出顯示的,「無效語法錯誤」是不會運行的問題。一個非常短的代碼,但在Python中無效的語法?

+0

除了語法錯誤,你的代碼有問題,而且目前還不清楚它是什麼,你想用它來完成。你應該用文字解釋你想寫什麼。 – 2014-09-30 03:21:13

回答

3

有在這條線的額外[,是造成麻煩:

messageFrom4=[[string[0::L], string[1::L], string[2::L], string[3::L]] 
      ^
      here 

試試這個,也注意到L必須是如果它要被用作片索引的整數,這是一個更好的主意,用else如果條件是相互排斥的:

def decode(string): 
    L=int(string[0]) 
    if L==4: 
     messageFrom4=[string[0::L], string[1::L], string[2::L], string[3::L]] 
     return messageFrom4 
    else: 
     return string[0:L] 
2

在此行中

messageFrom4 = [[串[0 :: L],串[1 :: L],串[2 :: L],串[3 :: L]]

你打開兩個括號,只關閉其中一個。

1

messageFrom4僅在L==4時聲明。

要解決這個問題,只需聲明messageFrom4作爲您希望它是當L不等於4