《高教版Python语言程序设计冲刺试卷》——模拟试卷B知识点
本文根据该书模拟试卷B答案及试卷讲解整理得,具有题目针对性,不涵盖部分送分题。欢迎探讨。
1.算法的复杂度
算法的复杂度包括时间复杂度和空间复杂度。
时间复杂度:执行算法的计算工作量。(最坏情况复杂性下基本运算次数)
空间复杂度:执行算法所需内存空间。
2.数据结构
数据结构:相互有关联的数据元素的集合表示,包括逻辑结构和存储结构。
3.信息屏蔽
信息屏蔽:一个模块内包含的信息对其它不需要这个信息的模块是不能访问的。
信息屏蔽与模块独立性相关。
4.软件工程详细设计工具
程序流程图、N-S、PAD、HIPO、判定表、PDL(伪码)都算。
CSS层叠样式表是HTML文件样式的表示,不算软件工程设计工具。
5.关系表
关系表:关系模型中把数据看作二维表。每一行称为一个元组。
6.E-R图转换成关系模式
数据库范畴,在转换时实体与联系都可以表示成关系,E-R图属性也可转换为关系的属性。
7.标识符
在标识符中出现的符号只允许下划线_,特殊符号如*!?都是非法的。
8.eval
eval函数的定义:将输入的字符串转换为python语句并执行该语句。eval(source,globals=None,locals=None,/)
定义的翻译:eval的input是一个字符串表达式,output是执行该表达式的值。
所以eval不仅可以狭义地获得用户输入的数字,还能执行数值计算式和提取字符串(二者都要用引号包含)
>>>eval("‘Hello’")
‘Hello’
9.turtle.circle(r,e)
画圆。r半径值为正,逆时针。值为负顺时针。
10.简单应用题2
代码如下:
def getInput():
try:
s=input()
while eval(s)!=int(s):
s=input()
except:
return getInput()
return eval(s)
print(getInput())
代码比较简单,主要补强知识:
①return <函数名> 返回函数开头的用法。
②一个函数中出现return并不绝对表示函数的结束,如异常处理结构中的return单纯结束异常处理本身,不会退出整个函数。
11.综合应用题
代码如下,是自己敲的,后来参照答案优化了一下:
#TianlongbabuExtract
import jieba
def LETTEREXTRACT(filename):
d,ls={},[]
file=open(filename,'r',encoding='utf-8')
newfile=open('天龙八部-汉字统计.txt','w',encoding='utf-8')
txt=file.read()
for letter in txt: #字符串遍历的方法不能过滤掉标点符号
d[letter]=d.get(letter,0)+1
del d[' ']
del d['\n']
for key in d: #字典的遍历用法要记住
ls.append(key+':'+str(d[key])) #append()只接受一个str,但可以用操作符在()内产生一个string
newfile.write(','.join(ls))
file.close()
newfile.close()
newnewfile=open('天龙八部-汉字统计.csv','w',encoding='utf-8-sig') #utf-8-sig解决了csv文件写入汉字乱码问题
newnewfile.write(','.join(ls))
newnewfile.close()
def WORDEXTRACT(filename):
d,ls={},[]
file=open(filename,'r',encoding='utf-8')
newfile=open('天龙八部-词语统计.txt','w',encoding='utf-8')
txt=file.read()
words=jieba.lcut(txt) #jieba.lcut()会过滤掉标点符号只剩词汇(空格貌似未过滤掉)
for word in words:
d[word]=d.get(word,0)+1
del d[' ']
del d['\n']
for key in d:
ls.append(key+':'+str(d[key]))
newfile.write(','.join(ls))
file.close()
newfile.close()
def MAIN():
filename='天龙八部-网络版.txt'
LETTEREXTRACT(filename)
WORDEXTRACT(filename)
MAIN()