2016-05-12 103 views
0

下面的代碼顯示「字符串索引超出範圍」誤差線「子子= + S [j]的」:錯誤:索引超出範圍

s=raw_input() 
    l=len(s) 
    row=int(l**0.5) 
    column=row+1 
    i=0 
    while i<column: 
     j=i 
     sub="" 
     while j<len: 
      sub=sub+s[j] 
      j=j+column 
     print sub, 
     sub="" 
     i=i+1 

是什麼錯誤?

回答

1

您可能正在使用:

while j < len(s): 

相反的:

while j<len: 

由於萊克斯S.還表示,len爲保留在Python內建的,所以這就是爲什麼這段代碼甚至作品(你從來沒有聲明過一個「len」變量)。他也說過,你需要留下評論並使用描述性的變量名,這樣我們才能確定你的代碼在做什麼。我想補充一點,你應該在操作員之間放置空格。因此,而不是

column=row+1 

應該

column = row + 1 

可以讀取PEP 8瞭解更多信息。

1

len是內置函數,條件j<len將始終爲真。將該行更改爲:

while j < l: 

您還應該嘗試使變量名稱更具描述性。使用單個字母變量名稱是Python中的反模式

+2

不僅僅是Python。 – Barmar