2016-02-27 79 views
-1

我正在尝试制作s程序,它需要文本并将包括第一个字母在内的每个第三个字母返回给用户。这就是我写的。索引中的字符串超出范围grok学习

msg = input('Message? ') 
for i in range(len(msg)): 
    (i) = (i*3) 
    print(msg[i], end=' ') 

这使回每thurd信包括第一信但随后也给出了错误:

文件 “program.py”,第4行,在 打印(MSG [I],端=” ') IndexError:字符串索引超出范围

此外,我使用的软件说:测试第一个示例,但忽略空白。您的提交引发了IndexError类型的异常。这发生在您提交的第4行。

最简单的方法来解决这个问题?

+0

这是一个家庭作业? – GLaDOS

+0

当您穿过字符串的1/3时,您的索引将超出范围 – dnit13

回答

1

比方说,你有字符串“我们在这里”。它的长度为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=' ') 
0

可以增加在3步范围:

msg = input('Message? ') 
for i in range(0, len(msg), 3): 
    print(msg[i], end=' ') 
1

你想做的事可以很容易地通过分割字符串

msg = input('Message? ') 
print(msg[::3]) 
达到什么
1

这应该工作:

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 
相关问题