2021-2022年全国青少年Python编程挑战赛题目解析(4)

发布于:2022/8/11 12:19:49   所属分类:中考备战学习资料库

一、引言


分享Python知识+推广我的Python书。


本号将陆续分享2021-2022年全国青少年Python编程挑战赛的题目,已经或将要送娃参加编程比赛或编程培训班的家长朋友可以一下。


关于该比赛,请参考本系列的第1篇推文。


前几次本号分享了该比赛的初中组初赛题目的样题、真题和复赛的第一部分题目,本次分享初中组复赛题的第二部分题目。


本系列此前已经发出的推文如下:


《2021-2022年全国青少年Python编程挑战赛题目解析(1)》


《2021-2022年全国青少年Python编程挑战赛题目解析(2)》


《2021-2022年全国青少年Python编程挑战赛题目解析(3)》




二、新书推广

《Python程序设计(基于计算思维和新文科建设)》,ISBN:9787121435577,胡凤国,电子工业出版社,2022年6月。


本书是电子工业出版社在国内较早采用纸质版+电子版的创新图书发行模式的第一次尝试。本书是这套创新图书的纸质版部分,与之内容互补的电子版图书将稍后出版。

本书的内容包含基础篇和排错篇两部分:

基础篇介绍Python程序设计的入门知识,共12章,包括:

⑴ Python简介
⑵Python软件的安装和Python程序运行;
⑶Python的基本概念(对象、数据类型、表达式、内置函数);
⑷输入和输出;
⑸程序设计的三种基本结构;
⑹函数和类;
⑺序列操作(列表、元组、集合、字典);
⑻字符串;
⑼正则表达式;
⑽文件读写;
⑾目录与文件操作;
⑿常用标准库介绍。

排错篇总结初学者常遇到的错误并介绍程序调试方法,包含2章:

⒀ Python错误类型;
⒁ Python代码调试。

与本书内容互补的电子版图书包含文本篇和应用篇两部分:

文本篇:介绍字符集、编码和文本文件读写的知识,包含了对国家规范《通用规范汉字表》8105个汉字当中难以输入和难以显示的汉字的处理。

应用篇:介绍Word、Excel、PPT、PDF、图片等常用办公文件的处理,是大家提高办公和科研效率的好帮手。

本书配套有详细的PPT和教学大纲,还有全部例题的程序代码和绝大部分思考题的程序代码。

本书配套PPT里面还加入了配套电子版图书中的部分内容,比如字符集和编码,不同编码的文本文件的读写,Word、Excel、PPT、PDF等一些常用办公文件的读写。

本书的配套资源可以在电子工业出版社官网下载。

本书的读者对象:

1、中小学学生及家长

本书对Python基础知识的介绍非常到位,适合中小学生学习Python编程。本书首先介绍了Python的对象、数据类型、变量、运算符、表达式、内置函数等基本概念,介绍输入输出等基本操作,然后介绍程序设计的三大程序结构(顺序、选择、循环)之后,孩子们学完这些就可以做很多有意思的题目,除了很多数学趣题之外,本书还为孩子们准备了海龟画图的知识,这是很多Python比赛常考的内容。

在学习完函数和列表、元组、集合、字典、字符串等序列类对象之后,孩子们可以对之前写的程序进行简化和改进,本书遵循了学生学习知识的自然规律,循序渐进地把知识呈现孩子们。

本书还贴心地告诉孩子们如何显示文件的扩展名,什么是当前目录等一些常识性的计算机知识,还详详细细地介绍了身份证号的构成规律和辨别真假身份证号这样的科普知识。

孩子们通过本书学习Python,不仅仅学到Python编程知识,更可以培养计算思维,对以后学习算法和参加信息学奥林匹克竞赛打下坚实的基础。

可以毫不夸张地说,买了本书,可以从小用到大,大学里面学习编程也能用到本书。

所以,小编在这里郑重把本书推荐给对编程感兴趣的中小学生,也推荐给已经或打算让娃参加编程比赛或编程辅导班的家长朋友。几千块钱的辅导班费用都舍得,几十块钱一本书是否可以考虑下?您买您娃受益,你不买咱俩都没损失。

不过,用心写的书,还是希望能让更多的孩子受益。看本gongzhong号也一样的,也能学到一些Python知识,不过,gongzhong号的更新是不定期的,gongzhong号的介绍不会像书中那么详细、那么系统。

2、大学文科生

可选本书当Python教材或自学Python的参考书。


3、文科领域的教师、科研人员和研究生
可拿本书当工具书,本书的配套程序会为您节省效率,在当前大数据和新文科的背景下,本书可以为相关领域的量化研究提供技术支持。

4、大学理工科学生

可选本书当自学Python的参考书,文科老师写的程序、使用的算法也有可参考之处。


5、理工科领域的教师、科研人员和研究生
本书配套的电子版图书中的编码和文本处理知识也可以作为理工科教师和科研人员处理文本数据的参考资料之一,毕竟专门开辟章节介绍国家标准《通用规范汉字表》汉字处理的程序设计图书并不多见。

本书在各大实体书店和网店均有销售。尤其在电子工业出版社天猫旗舰店销售火爆,月销量100+。京东、天猫、当当的购买渠道如下(可直达购买页面)。








三、题目分享

2021-2022年全国青少年Python编程挑战赛复赛阶段的比赛是在7月24日举行的。一共六道题,全是编程题。

今日分享初中组复赛的第4题和第5题。

【题目4】

任意输入一个整数n,输出一个n行的的图案,每行都是由数字+空格+*号组成,*号后无空格。
注意:input()内不添加任何参数
只有完全正确才可提交。若无法点击提交说明答题存在错误,可及时进行检查并修改

输入样例:
5

输出样例:
0*********
1 *******
2 *****
3 ***
4 *

【题目4分析】

本题目考查的知识是循环嵌套和print函数的end参数,或者是单层循环和有序序列类对象的倍增运算。用循环嵌套思路写出来程序如下。


n对应行数,外层循环控制每一行的输出,循环体的第一个print语句用来输出每行的数字,第4行和第5行这个内层循环用来输出每行的空格数,第6行和第7行这个内层循环用来输出每行的星号,第8行的print语句的作用是在每行的星号输出完毕之后输出一个换行符。

如果熟悉有序序列类对象的倍增运算,那么,我们可以把内层的两个循环去掉。


上面的代码可以简化一下,第四行的print语句因为输出空格之后不能换行,所以让end参数的值等于空字符串,但第5行的print语句输出星号之后刚好需要换行,所以没必要留end参数,顺带着,第6行的print语句也没有必要留了。于是程序简化成如下的样子。

其实,循环体内部的三个print语句可以合并为一个,这样,程序可以简化为三行代码。



【题目5】

已知:缺憾数是指这个数加1之后一定可以表示成另一个数的平方的形式,比如8和99就是两个缺憾数:
8+1=3^2
99+1=10^2
任意输入两个正整数m和n,按顺序输出m和n这两个数字范国内所有的缺憾数。
注意:input()内不添加任何参数

输入样例:
48
10

输出样例:
15
24
35

【题目5分析】

其实这个题目出得不是特别严谨:m和n这两个数字范围内所有的缺感数,包含m和n吗,题目没说。可能有人理解为包含,有人理解为不包含,跟第1题一样,我们不去做语文阅读理解题,直接根据输入输出示例来看是不是包含m和n。

因为输入48和10,这两者之间的缺憾数如果包含48的话,应该是4个,结果输出了3个,可见,出题人的意思是不包含m和n的。
我们的思路是检查位于m和n之间的所有正整数i,对于每一个i,都检查i+1是否等于某个正整数k的平方,如果是,则输出i。

据此,我们不难写出程序。


上面的程序在检查 i 是否缺憾数的时候,让k从0一直循环到 i-1,如果这中间有一个k能让i+1 == k*k, i 一定是缺憾数。

实际上,一旦发生一次i+1 == k*k,后面的k就不用再看了,所以,为了减少循环次数,我们可以在内层循环中加一个break语句。


说到减少循环次数,还能减少得更多。让k从0测试到i的算术平方根附近,这循环的次数还是多了。因为只有 i+1 的算术平方根附近的 k 才有可能。于是,我们可以取消循环,直接定位到i+1的算术平方根附近。

求 i+1 的算术平方根,math标准库的 sqrt 函数可以做到,Python运算符 ** 也可以做到。于是,我们的程序进一步简化如下。



青少年学习Python,在时间和精力允许的情况下,一定要尽量探求一道题目的多种解法,一方面是锻炼思维,另一方面是寻求问题的简便解法,再就是为编程比赛做好充足的准备:万一某些知识点忘了,还可以用其他知识点来尝试求解。


四、联系交流

如果需要跟图书《Python程序设计(基于计算思维和新文科建设)》的作者胡凤国老师进行交流,请发电邮:cuchufengguo@163.com,也可以给gongzhong号留言进行交流。

欢迎gongzhong号“语和言”,本书未来及展开或不曾收录的Python知识将不定期在本gongzhong号进行补充。


语和言gongzhong号还有读者交流群,经常跟作者交流的读者朋友可以入群一起讨论问题。

------分隔线----------------------------
相关学习资源
热门资讯
看了又看