好文档 - 专业文书写作范文服务资料分享网站

二级Python语言程序设计模拟

天下 分享 时间: 加入收藏 我要投稿 点赞

.

[解析] 复数类型变量运算遵守复数运算规则。 33、A

[解析] round(x[,ndigits])函数对x四舍五入,保留ndigits位小数。 34、B

[解析] break结束当前循环,不再判断执行循环的条件。 35、D

[解析] 关系表达式False!=0的结果为False。 36、A

[解析] 熟练掌握字符串格式化的format()方法的格式控制、槽顺序和参数顺序。^、<、>表示居中对齐、左对齐、右对齐。 37、A

[解析] 列表支持索引切片操作。 38、C

[解析] 代码实现了绘制半径为20、40、60的同心圆。 39、B

[解析] 通过fo.readlines()方法将文件的全部容读入一个列表fo。 40、B

[解析] 对于Python列表变量保存的一维数据,可以用字符串的jion()方法组成逗号分隔形式,再通过文件的write()方法存储到CSV文件中,其中\生成一个新的字符串,它由字符“,”分隔列表ls中的元素形成。 二、基本编程题

41、N=10 #N取值围是0—100,整数

print(\>3}%@{}\[解析]

这是一个基本编程题,使用Python程序输出特定格式字符串,需要使用字符串的.format()方法,格式输出如下。

N的输出格式是右对齐、3个字符、空格填充,槽模板字符串的设计为{:>3}。等号输出与变量N有关,格式是左对齐、20个字符,可以先计算等号字符串,再输出,因此,模板字符串的设计为{},所输出字符串是\。

综上,该问题参考代码如下: N=10#N取值围是0—100,整数

print(\>3}%@{}\

42、s=\学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?\ n=0 #汉字个数

m=0 #标点符号个数

m=s.count(',')+s.count('?') n=len(s)-m

print(\字符数为{},标点符号数为{}。\[解析]

Word 资料

.

这是一个基本编程题,分别对中文字符及中文标点符号进行统计。由于不涉及单词,不需要分词,只需要统计字符即可。 对于字符串s,统计其中某个出现的字符使用.count()方法,s.count(',')统计标点符号逗号(,)的个数。鉴于字符串s中只出现了逗号和问号字符,所以,m值是两个字符出现次数的和,即m=s.count(',')+s.count('?')。

除去标点符号,其余字符是中文汉字字符,可以用字符串s的总长度减去m值获得字符个数。 综上,该问题参考代码如下:

s=\学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?\ n=0 #汉字个数

m=0 #标点符号个数

m=s.count(',')+s.count('?') n=len(s)-m

print(\字符数为{},标点符号数为{}。\43、N=input(\请输入一个整数:\ s=0

for i in range(eval(N),eval(N)+100): if i%2==1: s+=i print(s) [解析]

这是一个基本编程题,考核整数求和的过程。

对于整数n,获得整数n到整数n+100之间的所有整数可以使用range(n,n+100),其中不包含n+100。由于不确定n的奇偶性,需要使用i%2方式判断。 该题目需要注意,给定程序中N是input()函数的赋值,实际上为字符串,进行range()函数计算时,需要使用eval(N)将其变换成整数。 综上,该问题参考代码如下: N=input(\请输入一个整数:\ s=0

for i in range(eval(N), eval(N)+100): if i%2==1: s+=i print(s) 三、简单应用题

44、import turtle as t for i in range(6): t.fd(100) t.left(60) [解析]

这是一个简单应用题,考核“海龟绘图体系”,绘制简单的六边形。

该问题可以采用两种思路解决:第一,逐一绘制每条边,形成六边形;第二,鉴于六边形的规则性,采用循环方式绘制。

turtle库中fd()函数绘制直线,left()函数用来在当前行进方向上向左转向。对于六边形,每个角为120°,相比之前的边向左转向为60°。

这里给出第二种思路的参考代码如下:

Word 资料

.

import turtle as t for i in rang((6): t.fd(100) t.left(60)

45、def getInput(): try:

txt=input(\请输入整数:\ while eval(txt)!=int(txt): txt=input(\请输入整数:\ except:

return getInput() return eval(txt) print(getInput()) [解析]

这是一个简单应用题,用来确保从用户处获得整数输入。

对用户输入合规性判断需要使用异常处理,采用保留字try-except,基本流程是:在try部分获得用户输入,并判断用户输入是否为整数,如果不是,循环获取用户输入,如果出现异常,再次调用本函数。

由于input()函数返回字符串类型,在判断字符串是否为整数时,需要使用eval()函数。鉴于输入可能为任意字符,调用eval()函数可能产生异常。例如,用户输入ahc,input()函数返回\,经过eval()函数返回abc,则可能报错,需要异常处理。

判断一个字符串txt是否为整数样式字符串,可以采用eval(txt)==int(txt)来实现,采用eval()函数去掉其两侧字符,与通过int()函数转换的结果相比,只有txt为整数值字符串时,结果才能一致。 综上,该问题参考代码如下: def getInput(): try:

txt=input(\请输入整数:\ while eval(txt)!=int(txt): txt=input(\请输入整数:\ except:

return getInput() return eval(txt) print(getInput()) 四、综合应用题

46、答案如下:

fi=open(\天龙八部-网络版.txt\ fo=open(\天龙八部-汉字统计.txt\ txt=fi.read() d={}

for c in txt:

d[c]=d.get(c,0)+1 del d[\ del d['\\n'] ls=[]

Word 资料

.

for key in d:

ls.append(\ fo.write(\ fi.close() fo.close() [解析]

这是一个综合应用题,考核对文本文件中字符和单词的统计能力。

问题1:统计网络下载的“天龙八部-网络版.txt”中各字符出现次数,采用“字符:次数”方式表示,以CSV方式存储至“天龙八部-汉字统计.txt”。读写文件分别采用open()函数的”r”和”w”模式。

在读入文件时,可以增加参数encoding=\,指定程序采用utf-8编码打开文件。文件编码过于复杂,在等级考试中并未涉及,这里,建议对编码的理解使用如下两条规则:第一,如果一个文本文件从网络获得,增加encoding参数,指定编码方式打开;第二,如果Python程序生成了一个文件,并再次打开,则不需要指定encoding参数。

打开文件后,可以一次性读入文件容至变量txt中,采用遍历循环逐一遍历txt中每个字符,并利用字典将每个字符的出现次数计入“字符:次数”键值对表示中,采用代码如下: d={}

for c in txt:

d[c]=d.get(c,0)+1

所有字符统计后,去掉空格('')和回车('\\n')对应统计次数,采用del删除字典d中对应项。再遍历字典d,将其写入列表ls,列表每项为“字符:次数”样式字符串。最后,使用字符串.join()方法,将列表ls中所有项以逗号分隔形式整合并写入输出文件。 综上,问题1的全部代码含注释如下:

fi=open(\天龙八部-网络版.txt\ fo=open(\天龙八部-汉字统计.txt\ txt=fi.read() d={}

for c in txt: #遍历循环,统计各出现字符及次数 d[c]=d.get(c,0)+1

del d[\ #删除空格字符对应的出现次数 del d['\\n'] #删除回车字符对应的出现次数 ls=[]

for key in d: #遍历字典,将字典各项组织后变成列表的元素 ls.append(\ fo.write(\ fi.close() fo.close()

问题2与问题1类似,只不过统计单元由字符变为中文词语,这需要采用jieba库进行分词。整体代码与问题1类似,仅在获取文本txt后进行一次jieba.lcut()分词操作即可。 综上,问题2的全部代码含注释如下: import jieba

fi=open(\天龙八部-网络版.txt\ fo=open(\天龙八部-词语统计.txt\ txt=fi.read()

words=jieba.lcut(txt)#中文分词,words是一个列表变量 d={}

Word 资料

.

for w in words: #遍历列表各元素,即遍历中文词语 d[w]=d.get(w,0)+1 del d[\ del d['\\n'] ls=[]

for key in d:

ls.append(\ fo.write(\ fi.close()

fo.close()47、答案如下: import jieba

fi=open(\天龙八部-网络版.txt\ fo=open(\天龙八部-词语统计.txt\ txt=fi.read()

words=jieba.lcut(txt) d={}

for w in words: d[w]=d.get(w,0)+1 del d[\ del d['\\n'] ls=[]

for key in d:

ls.append(\ fo.write(\ fi.close()

fo.close()

Word 资料

二级Python语言程序设计模拟

.[解析]复数类型变量运算遵守复数运算规则。33、A[解析]round(x[,ndigits])函数对x四舍五入,保留ndigits位小数。34、B[解析]break结束当前循环,不再判断执行循环的条件。35、D[解析]关系表达式False
推荐度:
点击下载文档文档为doc格式
94nxz5fh920fvqu4yw276b8ve00zl600v22
领取福利

微信扫码领取福利

微信扫码分享