Python 第四章 应用案例 |
您所在的位置:网站首页 › 曾春蕾对象 › Python 第四章 应用案例 |
第四章 组合数据类型及应用 1.列表应用——谁是胜利者 n个人围成一圈,每个人有一个编号1~n。他们从1开始依次报数,每次报到n的人淘汰,自动退出圈子,然后下一个人接着从1开始报数,然后下一个人接着从1开始报数,继续游戏,直到圈子只剩下一个人,游戏结束。请问每次淘汰人的编号是多少?最后胜利者又是谁? 分析: 1)建立两个列表q、deq分别存放报数人员序号和淘汰人员序号。 2)当队列人数大于1人时,从1~n报数,当到达队列尾,从头继续报数,并将每次报n的人员放入淘汰队列deq,同时从q队列删除。 3)最后一人为胜利者。 本例主要涉及列表元素的索引、添加和删除操作。 程序代码如下: 程序运行结果如下: 输入人数n 15 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 胜利者为: [9] 依次出列者为: [15, 1, 4, 8, 13, 7, 3, 2, 6, 12, 14, 10, 11, 5] 2.元组应用——桥牌的自动洗牌和发牌 玩桥牌,利用计算机实现自动洗牌和发牌,每家按花色整理好牌。 分析:该题主要涉及元组、列表的应用。 1)将花色、数字各放在一个元组中,定义放52张牌的一维列表。 2)顺次发牌,每隔4张取一张,13张牌成一手牌,通过两重循环生成4家牌。内循环是13张牌,放在列表中。出了内循环,将产生的13张牌添加为二维列表中的一个元素。 3)输出4家牌。 程序运行结果如下: ['♧K', '♧9', '♧4', '♤A', '♤8', '♤4', '♢Q', '♢9', '♢8', '♡Q', '♡7', '♡6', '♡3'] ['♧Q', '♧8', '♧7', '♧3', '♧10', '♤J', '♤9', '♤10', '♢7', '♢10', '♡K', '♡A', '♡5'] ['♧6', '♧5', '♧2', '♤7', '♤6', '♤2', '♢J', '♢5', '♢3', '♢2', '♡J', '♡8', '♡2'] ['♧J', '♧A', '♤Q', '♤K', '♤5', '♤3', '♢K', '♢A', '♢6', '♢4', '♡9', '♡4', '♡10'] 3.字典应用——统计单词出现的频率 网上搜索一段英文句子,统计各单词出现的频率。 分析:利用字典的键值对,按键进行分类统计,统计的结果存放在值中,步骤如下。 1)首先将英文文章放入字符串变量中。对字符串进行规范化处理,即去除标点符号,仅以空格分隔单词;单词首字母大写。 2)建立字典空集。将单词分离放入列表中,遍历列表,以单词作为键进行值的计数。形成键为单词、值为单词出现频率的字典。 3)输出字典的键和值,即单词和出现的次数。 程序代码如下: 程序运行结果如下: Anti : 1 Tracks : 1 Is : 1 A : 1 Complete : 1 Solutionto : 1 Protect : 2 Your : 4 Privacy : 2 Andenhance : 2 Pc : 2 Performanceo : 1 Performance : 1 4.集合应用——女排参赛队员情况 2015年女排世界杯中国队部分队员名单是朱婷、袁心玥、魏秋月、丁霞、曾春蕾、张常宁。2019年女排世界杯中国队部分队员名单是朱婷、张常宁、李盈莹、颜妮、龚翔宇、曾春蕾,要求用集合运算或集合方法显示如下信息。 1)两次比赛所有的参赛队员和人数; 2)两次比赛都参加的队员和人数; 3)只参加一次比赛的队员和人数。 分析:分别建立两年中国队部分队员名单数据集合;利用并集操作可获得两年所有参赛队员名单;利用交集操作可获得两次比赛参加的队员名单;利用补集操作可获得只参加一次比赛的队员名单。 程序代码如下: 程序运行结果如下: 2015年参加比赛的队员为: {'袁心玥', '朱婷', '魏秋月', '张常宁', '曾春蕾', '丁霞'} 人数为: 6 2019年参加比赛的队员为: {'龚翔宇', '李盈莹', '朱婷', '张常宁', '曾春蕾', '颜妮'} 人数为: 6 参加两次比赛的所有队员为: {'李盈莹', '张常宁', '曾春蕾', '颜妮', '袁心玥', '龚翔宇', '朱婷', '魏秋月', '丁霞'} 人数为: 9 参加两次比赛都参加的队员为: {'曾春蕾', '朱婷', '张常宁'} 人数为: 3 只参加一次比赛的队员为: {'袁心玥', '龚翔宇', '李盈莹', '魏秋月', '丁霞', '颜妮'} 人数为: 6 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |