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]
第二个返回突出显示,“无效语法错误”是它不会运行的问题。
答案 0 :(得分: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]
答案 1 :(得分:2)
在这一行
messageFrom4 = [[string [0 :: L],string [1 :: L],string [2 :: L],string [3 :: L]]
你打开两个括号,只关闭其中一个。
答案 2 :(得分:1)
messageFrom4
仅在L==4
时声明。
要解决此问题,只需将messageFrom4
声明为当L不等于4时。