3.12 实例
3.12.1 发扑克牌
【例3-16】发扑克牌,输出扑克牌花色和数值的随机组合。
【解析】扑克牌有54张牌,其中52张是正牌,2张是副牌(大王和小王)。52张正牌又根据花色分为黑桃、红桃、梅花和方块4组,每组花色的牌包括1~10(1通常表示为A)及J、Q、K各13张牌。
【代码】
【程序运行结果】
3.12.2 统计相同单词出现的次数
【例3-17】输入一串字符,统计其中相同单词出现的次数,单词之间用空格分隔开。
【解析】采用字典来实现,将单词作为键,将单词的次数作为值。
【代码】
【程序运行结果】
3.12.3 计算两个日期间隔天数
【例3-18】输入两个同年的日期,计算它们相隔的天数。其中,默认第二个输入日期比第一个输入日期晚。例如,输入2018-3-1与2018-5-25,输出间隔天数86。
【解析】输入的字符串转换为整数需要用到split()函数及map()函数。"2018-3-1".split("-")的含义是将字符串按“-”切分,返回["2018","3","1"]列表。map(int,list)的含义是将int函数依次应用于list中的每一个元素。闰年是指能被4整除但不能被100整除或能被400整除的年份。
【代码】
【程序运行结果】
3.13 习题
1.在列表中输入多个数据作为圆的半径,求出相应的圆的面积。
2.输入一段英文文章,求其长度,并求出包含多少个单词。
3.随意输入10个学生的姓名和成绩构成的字典,按照成绩高低排序。
4.任意输入一串字符,输出其中不同的字符及各自的个数。例如,输入“abcdefgabc”,输出为a→2,b→2,c→2,d→1,e→1,f→1,g→1。
5.设计一个字典,用户输入内容作为键,查找输出字典中对应的值,如果用户输入的键不存在,则输出“该键不存在!”。
6.已知列表a_list=[11,22,33,44,55,66,77,88,99],将所有大于60的值保存至字典的第1个key的值中,将所有小于60的值保存至字典的第2个key的值中,即 {k1:大于60的所有值,k2:小于60的所有值}。
7.给定一个字符串和一个列表,返回该字符串在该列表里面第二次出现的位置的下标,若没有出现第二次则返回-1。