2016-05-12 22 views
0

Der folgende Code-Show 'Stringindex außerhalb des zulässigen Bereichs' Fehler für Zeile "sub = sub + s [j]":Fehler: Index außerhalb des zulässigen Bereichs

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 

Was ist der Fehler?

Antwort

1

Sie suchen wahrscheinlich zu verwenden:

while j < len(s): 

Statt:

while j<len: 

Als Lex S. auch angegeben, len ein reserviertes in Python gebautet ist, also, warum dieser Code auch Werke (Sie haben nie eine "len" Variable deklariert).

Wie er auch sagte, müssen Sie Kommentare hinterlassen und aussagekräftige Variablennamen verwenden, damit wir feststellen können, was Ihr Code eigentlich macht. Ich möchte hinzufügen, dass Sie Leerzeichen zwischen Operatoren setzen sollten. Anstatt also

column=row+1 

sollte es sein

column = row + 1 

Sie die PEP 8 lesen können, mehr zu lernen.

1

len ist eine eingebaute Funktion und die bedingte j<len wird immer wahr sein. Ändern Sie die Zeile in:

while j < l: 

Sie sollten auch versuchen, die Variablennamen beschreibender zu machen. Bei Verwendung von Variablennamen mit einem Buchstaben handelt es sich um ein Antimuster in Python.

+2

Nicht nur Python. – Barmar

Verwandte Themen