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)))

运行结果如下:

python字典的应用_第1张图片

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

        该代码使用了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若对字典排序仍有不解可看此篇详细讲解

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

你可能感兴趣的:(python,开发语言)