python村长选举
时间: 2023-11-28 18:46:19 浏览: 109
以下是使用字典和列表型变量完成村长选举的Python代码:
```python
# 读取候选人名单
with open('name.txt', 'r') as f:
candidate_list = f.read().splitlines()
# 初始化候选人得票数为0
candidate_votes = {candidate: 0 for candidate in candidate_list}
# 读取投票信息并统计得票数
with open('vote.txt', 'r') as f:
for line in f:
candidate_votes[line.strip()] += 1
# 找到得票最多的候选人
elected_candidate = max(candidate_votes, key=candidate_votes.get)
# 输出当选村长的名字和得票数
print("当选村长的是{},得票数为{}。".format(elected_candidate, candidate_votes[elected_candidate]))
```
代码解释:
1. 首先,我们使用`with open('name.txt', 'r') as f`语句打开名单文件`name.txt`,并使用`f.read().splitlines()`读取文件内容并将其分割成行列表,得到候选人名单`candidate_list`。
2. 接着,我们使用字典推导式`{candidate: 0 for candidate in candidate_list}`初始化候选人得票数为0,得到一个名为`candidate_votes`的字典。
3. 然后,我们使用`with open('vote.txt', 'r') as f`语句打开投票信息文件`vote.txt`,并使用`for line in f`遍历文件中的每一行。
4. 对于每一行,我们使用`line.strip()`去掉行末的换行符,并使用`candidate_votes[line.strip()] += 1`将该候选人的得票数加1。
5. 最后,我们使用`max(candidate_votes, key=candidate_votes.get)`找到得票最多的候选人,并使用`format()`方法输出当选村长的名字和得票数。
阅读全文