Python 串入索引超出范围grok学习

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],结束=“”) 索引器错误:字符串索引超出范围 我正在使用的软件还说:测试第一个示例,但忽略空白

我正在尝试制作一个s程序,它将文本记录下来,并每三个字母(包括第一个字母)返回给用户。这就是我写的

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时,你的索引将超出范围