20231127_201255 python NCRE二级 历经01 村民选举 共2问

需求1

在这里插入图片描述

文件

name.txt

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

vote.txt

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

提示1

f=open("name.txt")
names=f.readlines()
f.close()
f=open("vote.txt")
votes=f.readlines()
f.close()
D={}
NUM=0
for vote in _______(1)________:
    num = len(vote.split())
    if num==1 and vote in _______(2)________:
        D[vote[:-1]]=_______(3)________+1
        NUM+=1
    else:
        with open("vote1.txt","a+",encoding="utf-8") as fi:
            fi.write("{}".format(__))

需求2

在这里插入图片描述

提示2

'''

'''
f=open("name.txt")
names=f.readlines()
f.close()
f=open("vote.txt")
votes=f.readlines()
f.close()
D={}
NUM=0
for vote in _______(1)________:
    num = len(vote.split())
    if num==1 and vote in _______(2)________:
        D[vote[:-1]]=_______(3)________+1
        NUM+=1
l=list(D.items())
l.sort(key=lambda s:s[1],_______(5)________)
name=____(6)____
score=____(7)____
print("有效票数为:{} 当选村民为:{},票数为:{}".format(NUM, name, score))

答案1

# 获取所有的村民信息
name_list = list()
fr_name = open("name.txt", "r", encoding="utf8")
for name in fr_name:
    name = name.strip()
    name_list.append(name)
fr_name.close()

# 获取所有的选票信息
vote_list = list()
fr_vote = open("vote.txt", "r", encoding="utf8")
for vote in fr_vote:
    vote = vote.strip()
    vote_list.append(vote)
fr_vote.close()

# 保存无效票的信息
fw = open("vote1.txt", "w", encoding="utf8")
# 筛选有效票
for vote_name in vote_list:
    # print(vote_name)
    li = vote_name.split()
    if len(li) > 1:
        fw.write(vote_name)
        fw.write("\n")
        continue
    if vote_name not in name_list:
        fw.write(vote_name)
        fw.write("\n")
        continue
fw.close()

答案2

"""
print("有效票数为:{} 当选村民为:{},票数为:{}".format(NUM, name, score))
"""

# 获取所有的村民信息
name_list = list()
fr_name = open("name.txt", "r", encoding="utf8")
for name in fr_name:
    name = name.strip()
    name_list.append(name)
fr_name.close()

# 获取所有的选票信息
vote_list = list()
fr_vote = open("vote.txt", "r", encoding="utf8")
for vote in fr_vote:
    vote = vote.strip()
    vote_list.append(vote)
fr_vote.close()

# 有效票列表
useful_list = list()

# 保存无效票的信息
fw = open("vote1.txt", "w", encoding="utf8")
# 筛选有效票
for vote_name in vote_list:
    # print(vote_name)
    li = vote_name.split()
    if len(li) > 1:
        fw.write(vote_name)
        fw.write("\n")
        continue
    if vote_name not in name_list:
        fw.write(vote_name)
        fw.write("\n")
        continue
    useful_list.append(vote_name)
fw.close()

d = {}
for useful_name in useful_list:
    old_num = d.get(useful_name, 0)
    new_num = old_num + 1
    d[useful_name] = new_num

items = d.items()
list_item = list(items)
list_item.sort(key=lambda o: o[1], reverse=True)

num = len(useful_list)
name = list_item[0][0]
score = list_item[0][1]

print("有效票数为:{} 当选村民为:{},票数为:{}".format(num, name, score))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值