Python 串入索引超出范围grok学习
我正在尝试制作一个s程序,它将文本记录下来,并每三个字母(包括第一个字母)返回给用户。这就是我写的Python 串入索引超出范围grok学习,python,Python,我正在尝试制作一个s程序,它将文本记录下来,并每三个字母(包括第一个字母)返回给用户。这就是我写的 msg = input('Message? ') for i in range(len(msg)): (i) = (i*3) print(msg[i], end=' ') 这会返回每个星期四的字母,包括第一个字母,但也会给出错误: 文件“program.py”,第4行,在 打印(消息[i],结束=“”) 索引器错误:字符串索引超出范围 我正在使用的软件还说:测试第一个示例,但忽略空白
msg = input('Message? ')
for i in range(len(msg)):
(i) = (i*3)
print(msg[i], end=' ')
这会返回每个星期四的字母,包括第一个字母,但也会给出错误:
文件“program.py”,第4行,在
打印(消息[i],结束=“”)
索引器错误:字符串索引超出范围
我正在使用的软件还说:测试第一个示例,但忽略空白。您的提交引发了IndexError类型的异常。这发生在您提交的第4行
最简单的解决方法是什么?假设您有字符串“我们在这里”。它的长度是11。您让
i
一直到字符串的末尾,但是一旦i
到达4
,索引i*3
(12)处的字符串就没有定义。相反,您不应该超过i
除以3(四舍五入)。这是您将如何做到的:
msg = input('Message? ')
for i in range((len(msg) // 3) + 1):
(i) = (i*3)
print(msg[i], end=' ')
您可以按3步递增范围:
msg = input('Message? ')
for i in range(0, len(msg), 3):
print(msg[i], end=' ')
你想做的事情可以通过切割字符串很容易地实现
msg = input('Message? ')
print(msg[::3])
这应该起作用:
msg = input("Message?: ")
count = 1
for i in msg:
if count % 3 == 0:
print("First char in string is " + msg[0] + ", the third is " + i)
count += 1
这是家庭作业吗?当你穿过字符串的1/3时,你的索引将超出范围