image

编辑人: 长安花落尽

calendar2025-05-10

message4

visits995

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

一、编程题

1、法定节假日
法定节假日是根据各国、各名族的风俗习惯或纪念要求,由国家法律统一规定的用以进行庆祝及度假的休息时间。
法定节假日制度是国家政治、经济、文化制度的重要反映,涉及经济社会的多个方面,涉及广大人民群众的切身利益。
法定节假日的休假安排,为居民出行购物和休闲提供了时间上的便利,为拉动内需、促进经济增长做出了积极贡献。
给出一个2020年的节假日的放假日期CSV文件(vacations.csv),内容示例如下:
以第1行为例,1230表示12月30日,0101表示1月1日。
代码功能为:读入CSV文件中数据,获得用户输入。根据用户输入的节假日名称,输出此节假日的假期范围。请补全代码。

参考答案:

解析:【喵呜刷题小喵解析】此题要求根据用户输入的节假日名称,输出此节假日的假期范围。首先,我们需要读取CSV文件中的节假日数据。CSV文件的第一列是节假日名称,第二列是该节假日的日期范围,格式为"开始日期-结束日期"。然后,我们定义一个函数`get_vacation_range`,该函数接受一个参数`vacation_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`函数进行排序,其中`reverse=True`表示降序排序。然后,我们定义了一个年龄列表`ages`,并调用`sort_by_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号的那位。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2021年06月Python三级实操答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share