编写程序统计名字中的字母数量

-2 投票
2 回答
10495 浏览
提问于 2025-04-18 00:28

写一个完整的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函数来计算名字中有多少个字符,但我不知道怎么做后面的部分。我使用的是Windows上的Python 2.7.6版本,所以我希望代码能适应这个版本。

这是我目前的代码:

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

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

for char in name:
    print char

2 个回答

0

我觉得你在找的是这个enumerate函数

enumerate接收一个可迭代对象(比如字符串)作为参数,然后返回一个迭代器,这个迭代器会生成index, item的元组。举个例子,enumerate("Michael")会生成(0, "M"), (1, "i"), (2, "c")这样的结果,听起来正好符合你的需求(如果你不想从索引0开始,可以传一个start值)。你可以在循环中直接解包这些元组的值,像这样:for index, char in enumerate(name, start=1):

另外一个建议是使用str.format来准备你的输出,而不是在print语句中简单地用逗号把项目连接起来。你可能想要的格式是"The {} letter in your name is {}".format(index, char),或者类似的东西。

2

要获取一个可迭代对象中每个元素的值和索引,可以使用enumerate()这个内置函数。这个函数会把每个元素和它的位置(索引)配对,然后把这些配对放进一个list里,配对的形式是tuple

示例:

>>> 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

撰写回答