2014-03-29 28 views
-2

編寫一個完整的Python程序,要求用戶輸入他們的名字,然後程序將輸出該名字中的字符數,然後計算出每個字符字母結束。編寫程序來計算名字中的字母

當我運行這個程序,我希望它看起來像這樣:

Please enter your name: Micheal 
Your name has 7 characters in it 

The 1 letter in your name is M 
The 2 letter in your name is i 
The 3 letter in your name is c 
The 4 letter in your name is h 
The 5 letter in your name is e 
The 6 letter in your name is a 
the 7 letter in your name is l 

我需要爲這個程序的代碼,也是程序應該能夠當你輸入任何名稱運行。我已經知道如何輸入一個名稱並使用len函數來計算名稱中有多少個字符,但我無法弄清楚如何完成剩下的操作。我正在使用Python版本2.7.6的Windows,所以我想根據這個版本的代碼。

這是我有:

name=raw_input("Please enter your name: ") 
print 

print"Your name has", len(name),"characters in it" 
print 

for char in name: 
    print char 
+0

@michealb,解決方案的哪一部分不清楚? – elbear

+0

查看'enumerate'(例如'help(enumerate)')。 –

回答

2

讓每一個元素的值與指數的迭代,使用enumerate()。這個內置函數將每個元素及其索引作爲tuple放入list中。

演示:

>>> for index, char in enumerate(name): 
...  print('The {} item in your name is {}'.format(i+1, item)) 
... 

The 1 item in your name is M 
The 2 item in your name is i 
The 3 item in your name is c 
The 4 item in your name is h 
The 5 item in your name is a 
The 6 item in your name is e 
The 7 item in your name is l 
0

我認爲你正在尋找the enumerate function

enumerate將單個可迭代對象(如字符串)作爲其參數,並返回一個產生index, item元組的迭代器。 enumerate("Michael")將產生(0, "M"), (1, "i"), (2, "c")等等,這似乎幾乎正是你想要的(如果你不想從索引零開始,你可以傳遞一個start值)。您可以在for index, char in enumerate(name, start=1):的循環中正確解開元組值。

另一個建議是使用str.format準備你的輸出,而不是僅僅用逗號項目串聯起來在你print語句。你可能想要"The {} letter in your name is {}".format(index, char)或類似的東西。

相關問題