python字典的应用

案例来源:

        黑马程序员——Python快速编程入门第2版 第五章 p068 实训案例 5.7.1青春有你

        近两年偶像选秀节目风靡,吸引了许多喜欢唱跳、有明星梦想的少男少女参加,《青春有你》正是节目之一。《青春有你》采用计票机制,选手获得的票数越多,排名就越靠前。本案例要求编写程序,接收选手的姓名和票数,输出排序后的成绩。

目录

python代码

运行结果

代码中相应的要点

      time.sleep()

      异常处理——try-except

      字典d.get()方法

      字典的排序


python代码如下:

##p068 5.7.1 青春有你
print('《青春有你》采用计票机制,选手获得的票数越多,排名就越靠前。本案例要求编写程序,\
接收选手的姓名和票数,输出排序后的成绩。')

import time as t
print('****************选手的号数与名称***********************')
print('1.A   2.B   3.C   4.D   5.E   6.F   7.G   8.H   9.I')
print('*********************************************************')
id_name = {1:'A',2:'B',3:'C',4:'D',5:'E',6:'F',7:'G',8:'H',9:'I'}
d={1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0}
c = 0
while c<=9:  #共十位评委
     try:
          n = eval(input('请评委{}根据以上选手的号数进行投票:'.format(c+1)))
          if n in (1,2,3,4,5,6,7,8,9):
               d[n] = d.get(n,0)+1
               c+=1
          elif n>=10 or n<=0 :
               print('您输入的号数有误,请根据提示重新投票')
               t.sleep(1)
     except:
          print('输入的形式有误,请仅输入选手号')
          t.sleep(1)
ls = sorted(d.items (),key = lambda x:x[1],reverse = True)
print('**********************投票结果如下**********************')
print('根据10位评委的投票,各个选手的票数及成绩为:')
for i in ls:
     print('  选手 {} 成绩为 {}'.format(id_name[i[0]],100*(i[1]/c)))

运行结果如下:

 根据此代码中相应的要点:

        该代码使用了time库的sleep函数(t.sleep(s)),其可用于让程序暂停,参数s代表程序停止多少秒后继续执行。 

(代码第5/20/23行)

(1条消息) python标准库——random库_·H·976的博客-CSDN博客https://blog.csdn.net/qq_62799602/article/details/126772850?spm=1001.2014.3001.5501此链接下有导入标准库的3种方式及其使用方式,在此不再做过多赘述。

        异常处理 :try-except,用于捕获用户输入时的各种错误形式情况,例如:+,?等非数字的输入。 

(代码第13~21行)

        字典的计数操作:d[i] = d.get(i,0)+1  # 通过字典d的键i返回其值,若键存在则返回相应值,否则返回默认值0。  +1后成为当前投票后的值。

d.get(key,default)  #若键存在则返回相应值,否则返回默认值default

此方法应好好理解后掌握,在字典的应用中d.get()方法十分好用 

(代码第16行)

        字典的排序: ls = sorted(d.items (),key = lambda x:x[1],reverse = True)

key = lambda x:x[1]  按照字典的值排序

key = lambda x:x[0]  按照字典的键排序

reverse = True  降序排序

reverse = False (默认)升序排序 

(代码第24行)

python字典的应用_·H·976的博客-CSDN博客python有关的time库、异常处理、字典的应用https://blog.csdn.net/qq_62799602/article/details/126820331若对字典排序仍有不解可看此篇详细讲解

(若对以上内容仍有疑问可在底下评论或私聊我嗷~) 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值