描述
使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权的村民,名单在附件name.txt中,从这40名村民中选出一人当村长,40人的投票信息由附件vote.txt中给出,每行是一张选票的信息,有效票中得票最多的村民当选。
问题一:请从vote.txt 中筛选出无效票写入文件vote1.txt 。有效票的含义是:选票中只有一个名字且该名字在name.txt文件列表中,不是有效票的票称之为无效票。
代码示例:(有问题可以联系我O(∩_∩)O)
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文件内
问题二:给出当选村长的名字及其得票数。
代码示例:
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))
助力计算机二级(python)考试,请参考题库:
计算机等级考试二级(python)真题 + python123 题库 源代码 (一)
https://download.csdn.net/download/zhengyuanyehit/88947895
计算机等级考试二级(python)真题 + python123 题库 源代码 (二)
https://download.csdn.net/download/zhengyuanyehit/88947923
计算机等级考试二级(python)真题 + python123 题库 源代码 (三)
https://download.csdn.net/download/zhengyuanyehit/88947932
计算机等级考试二级(python)真题 + python123 题库 源代码 (四)
https://download.csdn.net/download/zhengyuanyehit/88947939
加油!!!