字符串索引超出范围错误

时间:2012-09-02 10:38:01

标签: python string indexing

嘿,我一直得到一个字符串索引超出范围错误...我已经尝试了一切你能不能帮帮忙,非常感谢你们。

x = 0
y = ""
z = 0
user_input = raw_input("Message? ")

while z < len(user_input):
    y = y + " " + user_input[x]
    x = x +3
    z += 1
    if x > len(user_input):
         print y
         break

3 个答案:

答案 0 :(得分:2)

您只能在if x > len(user_input):时休息。但是如果x % 3 == 0怎么办?

这意味着输入字符串的长度可以分为三个。每次将x增加3,当输入字符串的长度为3的倍数时,您将收到错误。

要解决此问题,您应该使用if x >= len(user_input):代替。

答案 1 :(得分:1)

如果user_input是3的倍数,则x最终将等于user_input的长度(并且索引将比实际存在的大1)。

user_input = "abc"

如果有人用你的user_input回答,那么你的长度为3,但索引最多只能达到2(user_input [0] ==“a”,user_input [1] ==“b” ,user_input [2] ==“c”,user_input [3]抛出一个IndexError)。

相反,请将if语句更改为:

while x >= len(user_input):

答案 2 :(得分:0)

也许您的if条件应为x >= len(user_input)? (user_input[x] xlen(user_input)的{​​{1}}可能会给您带来麻烦)