Python二级总结


缘起:Python二级与2018年9月首次开考,与2016-至今大火,加入pythoner行列的人越来越多,学生学Python,二级是一个很好检验标准。博主作为一名大学生自学Python两年,听说计算机等级考试加入了Python语言,于是就立即报了名,虽然说对于学了这么久来说现在考意义并不大,但就是好奇


这篇文章写于考试结束后,旨在让新手了解Python二级考试试卷结构,以及一些经典的考试题目(详细请查看www.Python123.io平台,Python二级的专属网站)

试卷结构

选择题40道(40分,其中10分为公共基础知识),基础操作题3道(15分,一道5分),简单应用题2道(1道10分,一道15分),综合应用题1道(20分)

基本要求

  1. 掌握 Python 语言的基本语法规则。
  2. 掌握不少于 2 个基本的 Python 标准库。
  3. 掌握不少于 2 个 Python 第三方库,掌握获取并安装第三方库的方法。
  4. 能够阅读和分析 Python 程序。
  5. 熟练使用 IDLE 开发环境,能够将脚本程序转变为可执行程序。
  6. 了解 Python 计算生态在以下方面(不限于)的主要第三方库名称:网络爬虫、数据分析、数据可视化、机器学习、Web 开发等。

考试内容

一、 Python 语言基本语法元素

  1. 程序的基本语法元素:程序的格式框架、缩进、注释、变量、命名、保留字、数据类型、赋值语句、引用。
  2. 基本输入输出函数:input()、eval()、print()
  3. 源程序的书写风格。
  4. Python 语言的特点。

二、基本数据类型

  1. 数字类型:整数类型、浮点数类型和复数类型。
  2. 数字类型的运算:数值运算操作符、数值运算函数。
  3. 字符串类型及格式化:索引、切片、基本的 format() 格式化方法。
  4. 字符串类型的操作:字符串操作符、处理函数和处理方法。
  5. 类型判断和类型间转换。

三、 程序的控制结构

  1. 程序的三种控制结构。
  2. 程序的分支结构:单分支结构、二分支结构、多分支结构。
  3. 程序的循环结构:遍历循环、无限循环、break 和 continue 循环控制。
  4. 程序的异常处理:try-except。

四、 函数和代码复用

  1. 函数的定义和使用。
  2. 函数的参数传递:可选参数传递、参数名称传递、函数的返回值。
  3. 变量的作用域:局部变量和全局变量

五、 组合数据类型

  1. 组合数据类型的基本概念。
  2. 列表类型:定义、索引、切片。
  3. 列表类型的操作:列表的操作函数、列表的操作方法。
  4. 字典类型:定义、索引。
  5. 字典类型的操作:字典的操作函数、字典的操作方法。

六、 文件和数据格式化

  1. 文件的使用:文件打开、读写和关闭。
  2. 数据组织的维度:一维数据和二维数据。
  3. 一维数据的处理:表示、存储和处理。
  4. 二维数据的处理:表示、存储和处理。
  5. 采用 CSV 格式对一二维数据文件的读写。

七、Python 计算生态

  1. 标准库:turtle 库(必选)、random 库(必选) 、time 库(可选)。
  2. 基本的 Python 内置函数。
  3. 第三方库的获取和安装。
  4. 脚本程序转变为可执行程序的第三方库:PyInstaller 库(必选)。
  5. 第三方库:jieba 库(必选)、wordcloud 库(可选)。
  6. 更广泛的 Python 计算生态,只要求了解第三方库的名称,不限于以下领域:网络爬虫、数
    据分析、文本处理、数据可视化、用户图形界面、机器学习、Web 开发、游戏开发等。

考试环境
Windows 7 操作系统,建议 Python 3.4.2 至 Python 3.5.3 版本,IDLE 开发环境。


分享一套试题

做做看,试试你能对几道

选择题

1. 关于数据的存储结构,以下选项描述正确的是

A数据所占的存储空间量
B数据在计算机中的顺序存储方式
C数据的逻辑结构在计算机中的表示
D存储在外存中的数据

正确答案: C

2. 关于线性链表的描述,以下选项中正确的是

A存储空间不一定连续,且前件元素一定存储在后件元素的前面
B存储空间必须连续,且前件元素一定存储在后件元素的前面
C存储空间必须连续,且各元素的存储顺序是任意的
D存储空间不一定连续,且各元素的存储顺序是任意的

正确答案: D

3. 在深度为 7 的满二叉树中,叶子结点的总个数是

A 31
B 64
C 63
D 32

正确答案: B

4. 关于结构化程序设计所要求的基本结构,以下选项中描述错误的是

A 重复(循环)结构
B 选择(分支)结构
C goto跳转
D 顺序结构

正确答案: C

5. 关于面向对象的继承,以下选项中描述正确的是

A 继承是指一组对象所具有的相似性质
B 继承是指类之间共享属性和操作的机制
C 继承是指各对象之间的共同性质
D 继承是指一个对象具有另一个对象的性质

正确答案: B

6. 关于软件危机,以下选项中描述错误的是

A 软件成本不断提高
B 软件质量难以控制
C 软件过程不规范
D 软件开发生产率低

正确答案: C
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象

7. 关于软件测试,以下选项中描述正确的是

A 软件测试的主要目的是确定程序中错误的位置
B 为了提高软件测试的效率,最好由程序编制者自己来完成软件的测试工作
C 软件测试是证明软件没有错误
D 软件测试的主要目的是发现程序中的错误

正确答案: D

8. 以下选项中用树形结构表示实体之间联系的模型是

A 网状模型
B 层次模型
C 静态模型
D 关系模型

正确答案: B

9. 设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程(课号,课程名),选课SC(学号,课号,成绩),表SC的关键字(键或码)是

A 学号,成绩
B 学号,课号
C 学号,姓名,成绩
D 课号,成绩

正确答案: B

10.设有如下关系表:
以下选项中正确地描述了关系表 R、S、T 之间关系的是

A T=R∪S
B T=R×S
C T=R–S
D T=R∩S

正确答案: C

11. 关于 Python 程序格式框架的描述,以下选项中错误的是

A Python 语言的缩进可以采用 Tab 键实现
B Python 单层缩进代码属于之前最邻近的一行非缩进代码,多层缩进代码根据缩进关系决定所属范围
C 判断、循环、函数等语法形式能够通过缩进包含一批 Python 代码,进而表达对应的语义
D Python 语言不采用严格的“缩进”来表明程序的格式框架

正确答案: D

12. 以下选项中不符合 Python 语言变量命名规则的是

A I
B 3_1
C _AI
D TempStr

正确答案: B

13. 以下关于 Python 字符串的描述中,错误的是

A 字符串是字符的序列,可以按照单个字符或者字符片段进行索引
B 字符串包括两种序号体系:正向递增和反向递减
C Python 字符串提供区间访问方式,采用 [N:M] 格式,表示字符串中从 N 到 M 的索引子字符串(包含 N 和 M)
D 字符串是用一对双引号””或者单引号’ ‘括起来的零个或者多个字符

正确答案: C

14. 关于 Python 语言的注释,以下选项中描述错误的是

A Python 语言的单行注释以#开头
B Python 语言的单行注释以单引号 ‘ 开头
C Python 语言的多行注释以 ‘ ‘ ‘(三个单引号)开头和结尾
D Python 语言有两种注释方式:单行注释和多行注释

正确答案: B

15. 关于 import 引用,以下选项中描述错误的是

A 使用 import turtle 引入turtle 库
B 可以使用 from turtleimport setup 引入 turtle 库
C 使用 import turtle as t引入 turtle 库,取别名为 t
D import 保留字用于导入模块或者模块中的对象

正确答案: B

16. 下面代码的输出结果是
1
2
x = 12.34
print(type(x))


A <class 'int'>
B <class 'float'>
C <class 'bool'>
D <class 'complex'>

正确答案: B

17. 关于 Python 的复数类型,以下选项中描述错误的是

A 复数的虚数部分通过后缀“J”或者“j”来表示
B 对于复数 z,可以用 z.real 获得它的实数部分
C 对于复数 z,可以用 z.imag 获得它的实数部分
D 复数类型表示数学中的复数

正确答案: C

18. 关于 Python 字符串,以下选项中描述错误的是

A 可以使用 datatype() 测试字符串的类型
B 输出带有引号的字符串,可以使用转义字符\
C 字符串是一个字符序列,字符串中的编号叫“索引”
D 字符串可以保存在变量中,也可以单独存在

正确答案: A

19. 关于 Python 的分支结构,以下选项中描述错误的是

A 分支结构使用 if 保留字
B Python 中 if-else 语句用来形成二分支结构
C Python 中 if-elif-else 语句描述多分支结构
D 分支结构可以向已经执行过的语句部分跳转

正确答案: D

20. 关于程序的异常处理,以下选项中描述错误的是

A 程序异常发生经过妥善处理可以继续执行
B 异常语句可以与 else 和 finally 保留字配合使用
C 编程语言中的异常和错误是完全相同的概念
D Python 通过 try、except 等保留字提供异常处理功能

正确答案: C

21. 关于函数,以下选项中描述错误的是

A 函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。
B 使用函数的主要目的是减低编程难度和代码重用
C Python 使用 del 保留字定义一个函数
D 函数是一段具有特定功能的、可重用的语句组

正确答案: C

22. 关于 Python 组合数据类型,以下选项中描述错误的是

A 组合数据类型可以分为 3 类:序列类型、集合类型和映射类型
B 序列类型是二维元素向量,元素之间存在先后关系,通过序号访问
C Python 的 str、tuple 和 list 类型都属于序列类型
D Python 组合数据类型能够将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序、更容易

正确答案: B

23. 关于 Python 序列类型的通用操作符和函数,以下选项中描述错误的是

A 如果 x 不是 s 的元素,x not ins 返回 True
B 如果 s 是一个序列,s =[1,”kate”,True],s[3] 返回 True
C 如果 s 是一个序列,s =[1,”kate”,True],s[–1] 返回 True
D 如果 x 是 s 的元素,x in s 返回 True

正确答案: B

24. 关于 Python 对文件的处理,以下选项中描述错误的是

A Python 通过解释器内置的 open() 函数打开一个文件
B 当文件以文本方式打开时,读写按照字节流方式
C 文件使用结束后要用 close() 方法关闭,释放文件的使用授权
D Python 能够以文本和二进制两种方式处理文件

正确答案: B

25. 以下选项中不是 Python 对文件的写操作方法的是

A writelines
B write 和 seek
C writetext
D write

正确答案: C

26. 关于数据组织的维度,以下选项中描述错误的是

A 一维数据采用线性方式组织,对应于数学中的数组和集合等概念
B 二维数据采用表格方式组织,对应于数学中的矩阵
C 高维数据有键值对类型的数据构成,采用对象方式组织
D 数据组织存在维度,字典类型用于表示一维和二维数据

正确答案: D

27. 以下选项中不是 Python 语言的保留字的是

A except
B do
C pass
D while

正确答案: B

28. 以下选项中是 Python 中文分词的第三方库的是

A jieba
B itchat
C time
D turtle

正确答案: A

29. 以下选项中使 Python 脚本程序转变为可执行程序的第三方库的是

A pygame
B PyQt5
C PyInstaller
D random

正确答案: C

30. 以下选项中不是 Python 数据分析的第三方库的是

A numpy
B scipy
C pandas
D requests

正确答案: D

31.下面代码的输出结果是
1
2
x = 0o1010
print(x)


A 520
B 1024
C 32768
D 10

正确答案: A

32.下面代码的输出结果是
1
2
3
x=10
y=3
print(divmod(x,y))


A (1, 3)
B 3,1
C 1,3
D (3, 1)

正确答案: D
divmod(x, y, /)
Return the tuple(x//y, x%y). Invariant: div*y + mod ==x.

33. 下面代码的输出结果是
1
2
3
4
for s in"HelloWorld":
if s=="W":
continue
print(s,end="")


A Hello
B World
C HelloWorld
D Helloorld

正确答案: D

34.给出如下代码:
1
DictColor ={"seashell":"海贝色","gold":"金色","pink":"粉红色","brown":"棕色", "purple":"紫色","tomato":"西红柿色"}


以下选项中能输出“海贝色”的是
A print(DictColor.keys())
B print(DictColor[“海贝色”])
C print(DictColor.values())
D print(DictColor[“seashell”])

正确答案: D

35. 下面代码的输出结果是
1
2
s =["seashell","gold","pink","brown","purple","tomato"]
print(s[1:4:2])


A [‘gold’, ‘pink’, ‘brown’]
B [‘gold’, ‘pink’]
C [‘gold’, ‘pink’, ‘brown’, ‘purple’,’tomato’]
D [‘gold’, ‘brown’]

正确答案: D

36. 下面代码的输出结果是
1
2
d ={"大海":"蓝色", "天空":"灰色", "大地":"黑色"}
print(d["大地"], d.get("大地", "黄色"))


A 黑的 灰色
B 黑色 黑色
C 黑色 蓝色
D 黑色 黄色

正确答案: B

37. 当用户输入abc时,下面代码的输出结果是
1
2
3
4
5
6
7
try:
n = 0
n = input("请输入一个整数: ")
def pow10(n):
return n**10
except:
print("程序执行错误")


A 输出:abc
B 程序没有任何输出
C 输出:0
D 输出:程序执行错误

正确答案: B
请仔细看代码,def定义后的函数并没有执行,仅仅是干扰

38.下面代码的输出结果是
1
2
3
4
5
6
a = \[[1,2,3],[4,5,6], [7,8,9]]
s = 0
for c in a:
for j in range(3):
s += c[j]
print(s)

A 0
B 45
C 以上答案都不对
D 24

正确答案: B

39.文件 book.txt 在当前程序所在目录内,其内容是一段文本:book,下面代码的输出结果是

1
2
3
txt =open("book.txt", "r")
print(txt)
txt.close()

A book.txt
B txt
C 以上答案都不对
D book

正确答案: C
打印文本文件对象的时候绝对不是这样的,而是类似于

<_io.TextIOWrapper name=’book.txt’mode=’r’ encoding=’utf-8’>

40.如果当前时间是 2018年5月1日10点10分9秒,则下面代码的输出结果是

1
2
import time
print(time.strftime("%Y=%m-%d@%H>%M>%S",time.gmtime()))

A 2018=05-01@10>10>09
B 2018=5-1 10>10>9
C True@True
D 2018=5-1@10>10>9

正确答案: A


基础操作题

1.如下函数返回两个数的平方和,请补充横线处代码

1
2
3
4
5
def psum(___①_  _):
___②___ a**2 + b**2
a=eval(input())
b=eval(input())
print(psum(a,b))​

答案:

1
2
3
4
5
def psum(a, b):
return a**2 + b**2
a=eval(input())
b=eval(input())
print(psum(a,b))​

2.以中国共产党第十九次全国代表大会报告中一句话作为字符串变量 s,完善 Python 程序,分别用 Python 内置函数及 jieba 库中已有函数计算字符串 s 的中文字符个数及中文词语个数。注意,中文字符包含中文标点符号。(提交的代码应包括题目中给出的部分)

1
2
3
4
5
import jieba
s = "中国特色社会主义进入新时代,我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。"
n = ____①____
m = ____②____
print("中文字符数为{},中文词语数为{}。".format(n,m))

答案
1:len(s)
2:jieba.lcut(s)

3.0x4DC0 是一个十六进制数,它对应的 Unicode 编码是中国古老的《易经》六十四卦的第一卦,请输出第 51 卦(震卦)对应的 Unicode 编码的二进制、十进制、八进制和十六进制格式。

1
print("二进制{____①____}、十进制{____②____}、八进制{____③____}、十六进制{____④____}".format(____⑤____))

答案
print(“二进制{0:b}、十进制{0}、八进制{0:o}、十六进制{0:x}”.format(0x4DC0+50))


简单应用题

4.使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个边长为 200 的正方形。请结合格式框架,补充横线处代码。

1
2
3
4
5
6
import turtle
d = 0
for i in range(____①____):
turtle.fd(____②____)
d = ____③____
turtle.seth(d)

答案:

1
2
3
4
5
6
import turtle
d = 0
for i inrange(4):
turtle.fd(200)
d = d + 90
turtle.seth(d)

5.列表 ls 中存储了我国 39 所 985 高校所对应的学校类型,请以这个列表为数据变量,完善 Python 代码,统计输出各类型的数量。

1
2
3
4
ls = ["综合", "理工", "综合", "综合", "综合", "综合", "综合", "综合", "综合", "综合",\
"师范", "理工", "综合", "理工", "综合", "综合", "综合", "综合", "综合","理工",\
"理工", "理工", "理工", "师范", "综合", "农林", "理工", "综合", "理工", "理工", \
"理工", "综合", "理工", "综合", "综合", "理工", "农林", "民族", "军事"]

答案:

1
2
3
4
5
6
7
8
9
10
ls = ["综合", "理工", "综合", "综合", "综合", "综合", "综合", "综合", \
"综合", "综合", "师范", "理工", "综合", "理工", "综合", "综合", \
"综合", "综合", "综合", "理工", "理工", "理工", "理工", "师范", \
"综合", "农林", "理工", "综合", "理工", "理工", "理工", "综合", \
"理工", "综合", "综合", "理工", "农林", "民族", "军事"]
d = {}
for word in ls:
d[word] = d.get(word, 0) + 1
for k in d:
print("{}:{}".format(k, d[k]))

综合应用题

6、古代航海人为了方便在航海时辨别方位和观测天象,将散布在天上的星星运用想象力将它们连接起来,有一半是在古时候已命名,另一半是近代开始命名的。两千多年前古希腊的天文学家希巴克斯命名十二星座,依次为白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、魔蝎座、水瓶座和双鱼座。给出二维数据存储CSV文件(SunSign.csv),内容如下:

星座,开始月日,结束月日,Unicode
水瓶座,120,218,9810
双鱼座,219,320,9811
白羊座,321,419,9800
金牛座,420,520,9801
双子座,521,621,9802
巨蟹座,622,722,9803
狮子座,723,822,9804
处女座,823,922,9805
天秤座,923,1023,9806
天蝎座,1024,1122,9807
射手座,1123,1221,9808
魔蝎座,1222,119,9809

请编写程序,读入CSV文件中数据,循环获得用户输入,直至用户输入 “exit” 退出。根据用户输入的星座名称,输出此星座的出生日期范围及对应字符形式。如果输入的星座名称有误,请输出“输入星座名称有误!”。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

答案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#读入CSV格式数据到列表中
fo = open("SunSign.csv","r", encoding='utf-8')
ls = []
for line in fo:
line = line.replace("\n","")
ls.append(line.split(","))
fo.close()

while True:
InputStr = input() # 请输入星座名称,例如双子座
InputStr.strip()
flag = False
if InputStr == 'exit':
break
for line in ls:
if InputStr == line[0]:
print("{}座的生日位于{}-{}之间。".format(chr(eval(line[3])),line[1],line[2]))
flag = True
if flag == False:
print("输入星座名称有误!")

博主GitHub page地址:zhan123.xin
博主知乎地址:知乎

-------------本文结束感谢您的阅读-------------
世界之大,相遇是缘