错误:索引超出范围

时间:2016-05-12 23:03:32

标签: python indexoutofboundsexception

以下代码显示'字符串索引超出范围' line" sub = sub + 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

错误是什么?

2 个答案:

答案 0 :(得分:1)

len是内置函数,条件j<len将始终为true。将行更改为:

while j < l:

您还应该尝试使变量名称更具描述性。使用单字母变量名称是Python 中的反模式

答案 1 :(得分:1)

您可能希望使用:

while j < len(s):

而不是:

while j<len:

正如Lex S.所说,len是Python中的保留内置,因此这个代码甚至可以工作(你从未声明过“len”变量)。

正如他所说,您需要留下评论并使用描述性变量名称,以便我们确定您的代码实际上在做什么。我想补充一点,你应该在运营商之间放置空格。而不是

column=row+1

应该是

column = row + 1

您可以阅读PEP 8了解详情。