python 实例解析--村长选举

发布于:2022-12-08 ⋅ 阅读:(702) ⋅ 点赞:(0)

目录

村长选举 第一问

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

代码实现

运行结果

村长选举 第二问

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

代码实现

运行结果

附件


村长选举 第一问

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单在附件name.txt中,从这40名村民中选出一人当村长,40人的投票信息由附件vote.txt中给出,每行是一张选票的信息,有效票中得票最多的村民当选。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

问题:请从vote.txt 中筛选出无效票写入文件vote1.txt 。有效票的含义是:选票中只有一个名字且该名字在name.txt文件列表中,不是有效票的票称之为无效票。

代码实现

f = open("name.txt", encoding="utf-8")
names = f.readlines()
f.close()
f = open("vote.txt", encoding="utf-8")
votes = f.readlines()
f.close()
D = {}
NUM = 0
print(votes)
for vote in votes:
    num = len(vote.split())  # 分解成列表,并求列表长度(元素个数)
    if num == 1 and vote in names:  # 仅一个且在姓名中,有效
        D[vote[:-1]] = D.get(vote[:-1], 0) + 1
        NUM += 1
    else:
        with open("vote1.txt", "a+", encoding="utf-8") as fi:
            fi.write("{}".format(vote))  # 如果无效,保存到vote1文件内

运行结果

 

村长选举 第二问

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单在附件name.txt中,从这40名村民中选出一人当村长,40人的投票信息由附件vote.txt中给出,每行是一张选票的信息,有效票中得票最多的村民当选。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

问题:给出当选村长的名字及其得票数。

代码实现

f = open("name.txt", encoding="utf-8")
names = f.readlines()
f.close()
f = open("vote.txt", encoding="utf-8")
votes = f.readlines()
f.close()
D = {}
NUM = 0
for vote in votes:
    num = len(vote.split())  # 分解成列表,并求列表长度(元素个数)
    if num == 1 and vote in names:  # 仅一个且在姓名中,有效
        D[vote[:-1]] = D.get(vote[:-1], 0)+1
        NUM += 1

l = list(D.items())
l.sort(key=lambda s: s[1], reverse=True)
name = l[0][0]
score = l[0][1]
print("有效票数为:{} 当选村民为:{},票数为:{}".format(NUM, name, score))

运行结果

附件

在这里我把提到的两个文件放在下面。也可以使用自己的文件。

name.txt

邵冠华
瑞卡特
倪克伟
王仕琛
胡鸿博
韩可心
边禹
封亚凯
杨鑫晨
左承诚
李泽坤
资振鑫
乔威浩
张天伟
史磊
陈建福
刘笑雨
南梓晖
冷兴鑫
李东庭
冯萌
刘婕
倪昊真
王伟红
魏锐颖
向娜
张琳
周峻宇
曾钟鑫
陈嘉俊
戴光奕
郜艾荣
郭群
李光耀
李吉星
李颖铮
刘凯威
潘建宏
潘瑞宁
石梓玥
vote.txt

冷兴鑫
李东庭
冯萌
冷兴鑫
冷兴鑫
李东庭
李东庭
李东庭
冯萌 冷兴鑫
猪八戒
李东庭
李东庭
冯萌
李东庭
冯萌
李东庭
李东庭
李东庭
李东庭
冯萌
李东庭
李东庭
李东庭
李东庭
冯萌
李东庭
李东庭
李东庭
冯萌
李东庭
冯萌
李东庭
李东庭
李东庭
李东庭
冯萌
李东庭
李东庭
李东庭
李东庭

 学会简单运用,如何打开文件读取,实现计票的功能。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到