📜  5.2.9:有多少个名字? (1)

📅  最后修改于: 2023-12-03 14:59:05.569000             🧑  作者: Mango

5.2.9:有多少个名字?

这个程序的任务是统计给定文本文件中有多少个名字。

使用说明
输入

程序需要一个文本文件作为输入,该文件包含了一系列的名字,每个名字占据一行。

输出

程序将打印出名字的数量。

实现
def count_names(file_name):
    with open(file_name, 'r') as file:
        names = set()
        for line in file:
            names.add(line.strip())
    
    return len(names)


if __name__ == '__main__':
    file_name = 'names.txt'  # 根据实际文件名进行修改
    count = count_names(file_name)
    print(f'There are {count} names in the file.')
解释
  1. 我们定义了一个名为 count_names 的函数,该函数接受一个文件名作为参数。
  2. 我们使用 with open(file_name, 'r') as file 打开文件,并确保在操作完成后关闭文件。
  3. 我们使用一个 set 来存储名字,这样可以确保不会重复计算重复的名字。
  4. 我们遍历文件的每一行,并使用 line.strip() 去除首尾的空格和换行符,然后将其添加到 names 集合中。
  5. 最后,我们返回 names 集合的大小,即名字的数量。
  6. if __name__ == '__main__': 的代码块中,我们指定了待统计名字的文件名,并调用 count_names 函数计算名字的数量。
  7. 最后,我们打印出统计结果。
注意事项
  • 确保提供正确的文件名和文件路径。
  • 文件应该包含像以下这样每行一个名字的结构:
John
Jane
Michael
Emily
...