请编程实现一个投票统计程序,运行程序,分别输入“班长”,“学习委员”,“文化书记”,“纪律委员”,代表投给班长、学习委员、文化书记、纪律委员一票,输入“结束”终止投票。
要求:
1.用字典来存储投票结果
2.循环输入计票,直到输入“结束”后终止投票。
3.终止投票后,输出最高得票班委及得票数
3.将字典内存储得票结果按得票数目倒序排列,并输出。
4.一票未得的,最后输出显示为“xxx 0票”
5.做好输入内容的错误与异常处理
#创建字典,用各班委作为字典的键,值作为所得票数
try:
d = {'班长':0,'学习委员':0,'文化书记':0,'纪律委员':0}
while 1: #无限循环
str = input('请输入你要投票的班委:') #控制台输入班委名字存入变量
if str == '结束':
break #这里不可以用exit()方法,该方法会结束整个程序...
else:
d[str] += 1 #通过键获取值,自增1
d1 = sorted(d.items(),key=lambda x:x[1],reverse=True) #通过字典的值排序,返回列表
print('得票最高的班委是:',d1[0])
print(d1)
for key,value in d.items(): #遍历字典
if value == 0:
print(key,'的票数为',value)
except:
print('代码有误,请改正...')