新学期来临,人工智能学院某班级准备通过投票的方式进行班委换届选举。请编写程序,用于统计候选人的得票数,并按照得票数从高到低的顺序打印选举结果。 本题目不考虑得票数相同的情况。
时间: 2024-09-28 13:14:24 浏览: 83
为了帮助你们实现这个投票统计程序,我们可以设计一个简单的Python类,名为Candidate(候选人),每个Candidate都有名字和初始的得票数。然后创建一个VoteList(投票列表)来存储所有候选人的信息。以下是程序的一个基本框架:
```python
class Candidate:
def __init__(self, name):
self.name = name
self.votes = 0
def get_votes(self):
return self.votes
def add_vote(self):
self.votes += 1
def vote统计(election_list):
for candidate in election_list:
print(f"{candidate.name}当前得票数:{candidate.get_votes()}")
# 对候选人按得票数降序排序
sorted_candidates = sorted(election_list, key=lambda x: x.votes, reverse=True)
print("\n选举结果(按得票数从高到低):")
for candidate in sorted_candidates:
print(f"{candidate.name} - 得票数:{candidate.get_votes()}")
# 示例:初始化候选人和投票列表
candidates = [
Candidate("张三"),
Candidate("李四"),
Candidate("王五"),
# 添加更多候选人...
]
# 开始投票
for _ in range(若干次投票): # 根据实际需要设定投票次数
voter_choice = input("请输入你想投给哪位候选人的名字(输入名字结束):")
for candidate in candidates:
if candidate.name == voter_choice:
candidate.add_vote()
break
vote统计(candidates)
```
在这个程序中,用户需要在投票环节输入候选人的名字。每次投票结束后,`vote统计`函数会更新并打印候选人的得票情况,然后按得票数排序显示最终的选举结果。
阅读全文