Skip to main content
 首页 » 编程设计

python之有输入时如何计数

2025年05月04日9qq号

我正在尝试编写一个不接受输入但要求输入名称的函数。如果您输入一个空字符串,该函数应该为每个名字打印具有相同名字的人数。

例如:

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

这可能不是在实际代码中执行此操作的方法。