IndexError:Python 中的字符串索引超出范围

Jor*_*ron -3 python python-3.x

我的代码给我一个错误,说第 9 行的索引超出范围。这是我的代码:

s = 'aba'
letter = ''
substring = ''

i = 0

while(i <= len(s)):
    prev_letter = s[0]
    letter = s[i]

    if letter <= prev_letter:
        substring += letter
        prev_letter = letter

    i += 1
Run Code Online (Sandbox Code Playgroud)

Dou*_*las 5

更改while(i <= len(s):while(i < len(s)):while(i <= len(s)-1):

在 Python 中,字符串是一维字符数组。Python 编程中的索引从 0 开始。这意味着任何字符串的最大索引将始终为 len(s)-1。在您的代码中,最终将等于,它比最大值高一个元素。ilen(s)

作为旁注,在您的代码中使用for循环而不是while循环可能会更有益。您的代码可以替换为:

s = 'aba'
letter = ''
substring = ''

i = 0

for i in range(len(s)):
    prev_letter = s[0]
    letter = s[i]

    if letter <= prev_letter:
        substring += letter
        prev_letter = letter
Run Code Online (Sandbox Code Playgroud)