资源简介 第四章程序设计基础一、选择题1.Python程序中以下变量名正确的是( )A.a* B.age C.#b D.print2.判断数值x是否在区间[a,b]内,下列表达式正确的是( )A.x >= a and x <= b B."a" <= x <= "b"C.a≤x≤b D.a <= x or x <= b3.有如下 Python 程序段,假设程序运行正常,图A所示图片是原始图片,则推测程序运行结果图片是( )from PIL import Imageimport numpy as npimport matplotlib.pyplot as pltchoicelist,choice=[50,128,188,255],256for i in choicelist:if ichoice=ifn='tiger02.jpg'img=np.array(Image.open(fn).convert('L'))rows,cols=img.shape #图像尺寸分别赋值for i in range(rows): #依次取每个像素的坐标for j in range(cols):if (img[i,j]<=choice): #像素值小于等于指定值,赋值1,否则为0img[i,j]=0else:img[i,j]=1plt.figure("tiger128") #指定当前绘图对象plt.imshow(img,cmap='gray') #显示灰度图像plt.axis('off') #关闭图像坐标plt.show() #弹出包含了图片的窗口A. B. C. D.4.下列Python变量名错误的是( )A._1 B.BA C.cds_11 D.11_abb5.有下列Python程序段:a=[3,7,8,2,19,10,16,12]n=len(a)for i in range(2):k=ifor j in range(i+1,n):if a[k]k=jif i!=k:a[i],a[k]=a[k],a[i]下列说法不正确的是( )A.程序段执行后,列表a中的元素为[19,16,8,2,3,10,7,12]B.代码“for i in range(2):”等价于“for i in range(0,2):”C.程序段执行后,变量k的值为7D.将代码“if i!=k:”修改为“if k>i:”,不会影响程序的运行结果6.有如下Python程序段:k=[29,38,78,17]m=k[0]for i in k:if i>m:m=iprint(m)该程序段执行后,输出结果为( )A.29 B.38 C.78 D.177.有如下 Python 程序段:s=0for k in range(3,1,-1):if k <= 1 :x = 1if k <= 2 :x = 2if k <= 3 :x = 3s = s + xprint(s)执行该程序段后,输出显示的内容是( )A.9 B.8 C.6 D.38.有如下Python程序段:for i in range(50 ,1 ,—1 ):print(i)则输出的最后一个元素值是( )A.50 B.-49 C.1 D.2二、简答题9.判断输入的一个整数能否同时被3和7整除,若能,则输出“Yes”;否则输出“No”。10.编写程序,根据输入的年份(4位整数),判断该年份是否是闰年。三、操作题11.水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:1**3+5**3+3**3=153。这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。[问题求解]设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。print ("三位数之内的水仙花是:")for x in___(100,1000):b=x//100s=(x//10)___g=___If x=(b**3 +s**3+g**3):print(___)四、判断题12.def块中的代码不是主程序的一部分,会跳过该段代码.__( )__13.在Python中,s=s+5是错误的赋值语句。___( )___14.在循环中continue语句的作用是跳出循环的执行。__( )__15.Python中的“=”是赋值运算符,跟数学上的“=”意义不一样。___( )___16.如果变量a=5,那么表达式10>a and a<3的结果为False。___( )___17.实时获得鼠标的状态并对鼠标单击做出正确的响应,只有不断地进行监听、更新游戏状态、重绘屏幕三个步骤的操作。 __( )__五、填空题18.以下程序引入Python的math模块,使用math模块下的floor函数对命令行输入的实数进行取整n=input(“请输入一个实数:”)n2= math. floor(float(n))print(n2)该程序段划线处应填入的代码为________。19.阅读下列程序,写出运行结果i = 0 sum = 0 t = 1 while sum < 10:i = i+ 1 t=t*i sum = sum + t print(sum)运行输出结果是:_______________20.项目学习:解密盛唐时期诗人关系【项目情境】唐代诗人史传有名有姓者不下千余人,他们组成了大大小小不同的朋友圈。有的因为诗风接近,如李白代表的浪漫主义、杜甫代表的现实主义、王维代表的田园山水、芩参代表的边塞诗风;有的因为年龄大体相近,如盛唐时期的李白、杜甫、贺知章等;有的因为政见相近,如韩愈作为古文运动的领袖级人物,当时很多文人墨客以进入他的朋友圈为荣。在盛唐时期有这样一个朋友圈,他们的友谊跨越数十年,诗人之间通过互动诗歌,表达抒发情感,是他们朋友圈的一种表现方式,用计算机来分析这个时代的唐诗,就会发现诗人之间有着你意想不到的千丝万缕的关系。学校某研究性学习小组利用大数据分析技术,通过对诗词分析,绘制盛唐时期几位诗人(杜甫、李白、王维、孟浩然……)之间的社交关系网络图,试图推测哪位诗人是同时代诗人的核心,哪位诗人的影响最大,从而更好地学习、理解唐诗。【项目准备】为完成项目,需要确定主题、目标、制订规划等各项工作。在此不一一展示。明确的主题—盛唐时期的诗人及诗词分析和诗人社交关系网络图【项目实施】项目研究主要以诗人诗作为依据。具体实施过程如下:(一)明确需要采集的数据选择合适的采集途径、工具和方法。全唐诗一共四万多首,分析采集相关数据的条件:①盛唐时期;②诗人、诗人之间经常称呼对方的别名;③考虑到同名同姓的问题,因此还需要诗人的生卒年的信息。根据要求,完成答题。(1)全唐诗数量较多,一共四万多首,来源分散,存储在互联网不同的服务器与各客户终端。从大数据存储与计算的角度来看,由此可知大数据具有____________的特征。(单选)A.精确让位于模糊B.价值密度低C.分布式存储D.变化速度快(2)网络上如此海量的关于唐诗的数据,有文字、图片、视频、音频等。这些数据种类和格式也不一致,表明各种____________数据共存于网络中。(多选)A.结构化B.半结构化C.非结构化D.网状结构(3)面对繁杂的数据,学习小组决定研究解密盛唐时期诗人关系,并利用计算机程序从网络中采集诗人、别名等相关的文本数据,并以一定的数据结构存储形成盛唐诗库。存储数据主要有两种方式,一种是____________,一种是数据云存储。你建议学习小组采用____________数据存储方式,理由是___________________。(二)利用 Python程序采集、整理、分析数据。第一步,从互联网中筛选出符合条件的诗人及诗作等文本,整理并形成盛唐诗库;第二步,确定人物关系分析策略,即从唐诗库中搜索、统计诗人或别名的引用次数,确定二人之间的疏密关系,规则是诗的标题和正文中只要提到过对方,那么两者之间的引用关系加1,若一首诗中提到多次对方,只算一次引用;第三步,编写程序并调试验证。用爬虫程序段(如下图所示)采集数据。根据要求,完成答题。base_url=’http://www./shici/lis\ t?cate=%E5%94%90%E8%AF%97%E4%B8%89%E7%99%BE%E9%A6%96&p=’ import requests import parsel import re headers={ ‘User-Agent:’Mozilla/5.0(Windows NT 10.0;WOW64)AppleWebKit/537.36(KHTML, like Gecko) } for i in range(1,3): the_ url=base _url+str(i) response=requests get (the _url, headers=headers) html_ str=response. text html= parsel. Selector(html_str) title_url= html. xpath(’//div[@class="poem_ content"]’).extract() f=open("poet. txt","a" ) for poet in title_url: the_peom=urls=re findall(<div class="poem_content">(.* ?)’, poet) f write(str(the_ peom[0])) f. write("\n") f.close()(4)使用爬虫程序获取文本数据并形成唐诗库文件,所使用的数据采集方法为____________(选填:系统日志采集法、网络数据采集法其他数据采集方法)。阅读程序可知每首诗存放于列表poem[]中(以唐诗“春晓”为例如下表),采集后的数据保存在poet.txt文件中,该文件是一个_________________(选填:数据库文件、文档文件、图像文件、网页文件)。该数据采集方法可以将非结构化数据从网页中抽取出来,将其存储为统一的数据文件,并以_______________________的方式存储(选填:结构化、半结构化)Poem[0] Poem[1] Poem[2] Poem[3]“春晓” “唐” “孟浩然” “春眠不觉晓,……,花落知多少”。(5)以诗人甲、乙为例解密二人关系,完成答题。数据处理过程中要运用一定的分析方法对大量无序的数据进行整理、分析挖掘数据内在的结构和规律,从而提取有价值的、有意义的数据。数据分析一般包括特征探索、关联分析、聚类与分类等。让计算机搜索遍历唐诗库中有关甲、乙两位诗人的诗文,统计两位诗人或别名相互的引用次数,找寻二人之间的关联。这是运用了__________________(选填:特征探索、关联分析、聚类与分类)方法进行数据分析,也是__________________(选填:枚举、二分查找、排序)算法思想去求解这一问题的体现。(6)编制计算机程序解决问题的过程中,__________________是编程的核心,是解决问题的方法和步骤。选用Python程序设计语言编写程序,Python属于__________________(选填:分析问题、设计算法、编写程序、调试运行、机器语言、汇编语言、高级语言)。图a示意,使用__________________(选填:自然语言、流程图、伪代码)进行算法描述,且运用循环控制结构嵌套了__________________控制结构,如果要跳出本次循环体的执行,应使用__________________语句实现跳转。(7)阅读程序(图b示意),程序中以“#”开头的语句,其作用是_______________,程序调试完成,通过“另存为”保存文件,文件后缀名为_____________。图a import gushi #从txt文档中读取古诗 poems=gushi. readDatat()#用poems存储所有的唐诗jia=input("请输入诗人甲:") yi=input("请输入诗人乙:") gx=0 for poem in poems:#逐一列举:poem代表其中一首古诗 if jia in poem[2]and(yi in poem[0]or yi in poem[3]): gx=gx+1 #问题的解 print(jia,'"写给",yi,"的古诗共",gx,"首") 图b(三)分析数据进行可视化表达并推测盛唐时期诗人关系。(8)解密盛唐时期诗人关系。数据的可视化以易于理解的方式展示和诠释数据之间的关系、趋势与规律等,使人们更好地理解数据。从常用和实用的维度,数据可视化的呈现类型主要分为探索型和解释型,其中_________型可以帮助人们发现数据背后的价值,_________型则把数据简单明了地解释给人们(选填:探索、解释)。数据分析类型不同可视化呈现方式也不同,如关于趋势的分析,可用_________类型的图表呈现,关于比例的分析,可用_________类型的图表呈现关于关系的分析,可用_________类型的图表呈现。(9)解密盛唐时期诗人关系。学习小组选择用网络关系图呈现盛唐时期诗人社会网络关系(如图所示)。图中箭头表示诗人之间的引用关系,如李白引用了贺知章,那么就有李白指向贺知章箭头;箭头的粗细程度则表示了诗人之间引用关系的强弱,如李白引用孟浩然的数量达4次,箭头就要粗一些。________(10)解密盛唐时期诗人关系。观察图示,从绘制的盛唐的诗人社交关系网络图,尝试推测哪位诗人是盛唐诗人的核心,哪位诗人的影响最大,请简要阐述。(要求100字左右)________21.阅读下列程序,写出运行结果。def fib(m):n1=1 n2=1 for i in range(3,m +1): t = nl + n2 n1 = n2 n2 = t return t Print(fib(5))运行结果是:_______________22.运行下列程序,正确的结果是_________________s=0for i in range (1 5):s=s+iprint("i=",i,"s=",s)23.x=int(input(“请输入第1个数:”))y=int(input(“请输入第2个数:”))if x>y:print(x)else:print(y)程序运行后,键盘输入8和6,其输出结果为_________________试卷第页,共页参考答案:1.B2.A3.B4.D5.C6.C7.C8.D9.n=int(input("请输入一个整数:"))if n%3==0 and n%7==0:print("Yes")else:print("No")10.x=int(input("请输入一个年份(四位数):"))if x%400==0:print("{}年是闰年".format(x))elif x%4==0 and x%100!=0:print("{}年是闰年".format(x))else:print("{}年不是闰年".format(x))11. range %10 x% 10或x-b*100-s*10或其它同等答案 x12.对13.错误14.错15.正确16.正确17.对18.import math19.3320. C ABC 数据本地存储 云存储 方便文件共享,只需联网就可读取文件,可以脱离本地计算机保存文件。 网络数据采集法 文档文件 结构化 关联分析 排序 设计算法 高级语言 流程图 判断循环 break 解释、注释 .py 探索 解释 折线图、柱形图、柱线混合图饼状图、堆叠面截图、百分比圆环图、圈图 散点图、雷达图、网络关系图、词云图、数据地图、动态势力图、3D动态显示图 如局部图b所示。由引用次数可知,从社交关系从深至浅来说,杜甫的好友依次是李白、孟浩然、王维;李白的好友是孟浩然、杜甫、贺知章;贺知章没有好友;王维的好友只有孟浩然;孟浩然的好友只有王维。 如局部图b所示。由被引用次数可知,李白的被引用次数是12,孟浩然的被引用次数是8,杜甫的被引用次数是3,王维的被引用次数是2,贺知章的被引用次数是2。故李白是是盛唐诗人的核心;从引用别人的次数来看,杜甫的引用别人的次数是15,李白的引用别人的次数是9,维的引用别人的次数是2,孟浩然的引用别人的次数是1,王贺知章的引用别人的次数是0。故杜甫的影响最大。21.522.i=4 s=1023.8 展开更多...... 收起↑ 资源预览