2022届计算机学院学生会主席投票选举系统 - Python编程实现

背景:

2022届计算机学院学生会主席投票选举工作即将开始,为了提高效率,学院决定采用电脑统计选票的方式进行投票。本次投票将采用以下流程:

  1. 当投票选举正式开始后,同学们将排队一一走到电脑前,投上自己神圣的一票:在电脑前输入一个姓名,然后输入回车表示确认。
  2. 当所有同学投票结束后,工作人员只需要输入'*'并回车确认,表示投票结束。
  3. 电脑立即显示出得票最高的同学姓名,该同学将当选为新一届计算机与通信工程学院学生会主席。

问题:

假定票数相等时先输入的姓名为主席。选举大会的准备工作正在紧张进行,编程统计投票的工作就交给你了。本题为单实例测试。

输入:

输入包含多行,每行是一个由小写英文字母组成的字符串,表示一个姓名,遇到'*'时表示输入结束。你可以假定,参加投票学生的人数不超过200人,每个学生姓名字符串的长度小于20。

输出:

输出为一个字符串,当选为学生会主席的学生姓名。

思路:

使用字典记录每个候选人的得票数,遍历输入的姓名,将每个候选人的得票数加一,最后找到得票最高的候选人即可。

Python 代码:

votes = {}  # 使用字典记录每个候选人的得票数

while True:
    name = input()
    if name == '*':
        break
    if name in votes:
        votes[name] += 1
    else:
        votes[name] = 1

# 找到得票最高的候选人
max_votes = 0
winner = ''
for name, count in votes.items():
    if count > max_votes:
        max_votes = count
        winner = name

print(winner)

代码解释:

  1. 使用votes字典记录每个候选人的得票数,键是候选人的姓名,值是得票数。
  2. 使用while True循环读取输入,直到遇到'*'结束。
  3. 如果输入的姓名已经存在于votes字典中,则将其得票数加一;否则,将该姓名添加到字典中,并将其得票数初始化为1。
  4. 使用循环遍历votes字典,找到得票最高的候选人,并将其姓名输出。

示例输入:

john
mike
john
mike
mary
john
*

示例输出:

john

原文地址: https://www.cveoy.top/t/topic/ojJC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录