2021年06月Python三级实操答案及解析.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一、编程题

1、法定节假日

法定节假日是根据各国、各名族的风俗习惯或纪念要求,由国家法律统一规定的用

以进行庆祝及度假的休息时间。

法定节假日制度是国家政治、经济、文化制度的重要反映,涉及经济社会的多个方

面,涉及广大人民群众的切身利益。

法定节假日的休假安排,为居民出行购物和休闲提供了时间上的便利,为拉动内需

、促进经济增长做出了积极贡献。

给出一个2020年的节假日的放假日期CSV文件(vacations.csv),内容示例如下:

以第1行为例,1230表示12月30日,0101表示1月1日。

代码功能为:读入CSV文件中数据,获得用户输入。根据用户输入的节假日名称,

输出此节假日的假期范围。请补全代码。

参考答案:

解析:【喵呜刷题小喵解析】此题要求根据用户输入的节假日名称,输出此节假日

的假期范围。首先,我们需要读取CSV文件中的节假日数据。CSV文件的第一列是

节假日名称,第二列是该节假日的日期范围,格式为开始日期-

结束日期。然后,我们定义一个函数`get_vacation_range`,该函数接受一个参数`v

acation_name`,即用户输入的节假日名称。在函数内部,我们打开CSV文件,并使

用`csv.reader`读取文件内容。然后,我们遍历每一行数据,如果节假日名称在当前

行的第一列中出现,我们就将该行的第二列(即日期范围)输出,并返回。如果遍

历完所有行都没有找到对应的节假日,我们就输出提示信息,告知用户输入的节假

日不是法定节假日。最后,我们调用`get_vacation_range`函数,并接受用户输入的

节假日名称作为参数。

2、尊老王国有一个默认规则,排队必须遵守年长的在前,年幼的在后。

一支正要出城的队伍,请帮助他们顺利出城。

输入:

15、78、96、45、36

输出

[96,78,45,36,15]

[3,2,4,5,1]

请在划线处补全代码,实现以上功能

参考答案:

解析:【喵呜刷题小喵解析】根据题目要求,我们需要将年龄从大到小排序,并输

出排序后的年龄列表和对应的顺序列表。首先,我们定义一个函数`sort_by_age`,

它接受一个年龄列表作为输入,并使用Python内置的`sorted`函数进行排序,其中`r

everse=True`表示降序排序。然后,我们定义了一个年龄列表`ages`,并调用`sort_b

y_age`函数对其进行排序,并打印出排序后的结果。接着,我们使用列表推导式生

成一个顺序列表`order`,它包含年龄列表中每个元素对应的索引(从1开始),然

后打印出顺序列表。这样,我们就可以得到题目要求的输出结果了。

3、有n个人围成一圈,顺序排号。

从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原

来第几号的那位。

参考答案:

解析:【喵呜刷题小喵解析】:这个问题是一个经典的约瑟夫环问题,也被称为“

丢手绢”问题。在这个问题中,有n个人围成一圈,从第一个人开始报数(从1到3报

数),凡报到3的人退出圈子,我们需要找出最后留下的是原来第几号的那位。这

个问题可以使用递归或循环的方法来解决。这里我们给出一个使用循环的Python

代码实现。在代码中,我们首先判断如果只有一个人,那么这个人就是最后留下的

人,直接返回0。然后,我们创建一个列表

`remaining`,其中包含1到n的所有数字,表示围成一圈的人的顺序。接着,我们使

用一个循环来模拟报数的过程,每次循环将报到3的人从列表中删除。具体地,我

们使用变量`index`来表示当前报到的人的顺序号,初始值为0。每次循环,我们将

`index`更新为`(index+3-1)%

len(remaining)`,这样可以保证当报到3的人被删除后,下一个报到的人的顺序号仍

然正确。然后,我们删除`remaining`列表中`index`

对应的元素,表示这个人已经退出圈子。最后,当`remaining`

列表中只剩下一个元素时,这个元素就是最后留下的人的顺序号,我们将其返回即

可。在示例中,我们调用`last_man_standing(10)`

来求解10个人围成一圈时,最后留下的是原来第几号的那位。运行代码后,输出结

果为4,表示最后留下的是原来第4号的那位。

文档评论(0)

喵呜刷题 + 关注
实名认证
文档贡献者

来喵呜刷题,完成你的职业蜕变!

1亿VIP精品文档

相关文档