我正在尝试编写一个不接受输入但要求输入名称的函数。如果您输入一个空字符串,该函数应该为每个名字打印具有相同名字的人数。
例如:
>>>name()
Enter a name: Paul
Enter a name: Bill
Enter a name: John
Enter a name: Paul
Enter a name: Nick
Enter a name: Bill
Enter a name: Bill
Enter a name:
There is 1 person named John
There is 1 person named Nick
There are 2 people named Paul
There are 3 people named Bill
到目前为止我有:
def name():
name = input ('Enter a name: ')
count = 0
while name:
if name == input ('Enter a name: '):
count = count + 1
else:
print (count)
我很确定我数错了。 您将如何正确执行此功能?当您不知道将有多少个不同的名称时,如何区分不同的输入并计算它们?
此外,如果可能的话,即使效率不高,我也希望在学习过程中获得基本代码。
请您参考如下方法:
只是为了好玩,单行执行此操作:
>>> collections.Counter(iter(functools.partial(input, "Enter a name: "), ""))
Enter a name: Paul
Enter a name: Bill
Enter a name: John
Enter a name: Paul
Enter a name: Nick
Enter a name: Bill
Enter a name: Bill
Enter a name:
Counter({'Bill': 3, 'Paul': 2, 'Nick': 1, 'John': 1})
这可能不是在实际代码中执行此操作的方法。
