2016-02-27 77 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 
相關問題