嘿,我不断收到字符串索引超出范围错误...我已经尝试了一切,请您帮忙,非常感谢。
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
你只有在if x > len(user_input):
. 但万一x % 3 == 0
呢?
这意味着输入字符串的长度可以被三除。x
每次增加三,当输入字符串的长度是三的倍数时,你会得到一个错误。
要修复它,您应该改用它if x >= len(user_input):
。
如果 user_input 是 3 的倍数,则 x 最终将等于 user_input 的长度(并且索引将比实际存在的大一)。
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):
也许你的if
条件应该读x >= len(user_input)
?(user_input[x]
存在x
可能len(user_input)
会给你带来麻烦)