嘿,我一直得到一个字符串索引超出范围错误...我已经尝试了一切你能不能帮帮忙,非常感谢你们。
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
答案 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]
x
为len(user_input)
的{{1}}可能会给您带来麻烦)