计算机二级Python备考整理

一、概况

上机考试,考试时长 120 分钟,满分 100 分。

Windows7操作系统,建议 Python 3.4.2 至 Python 3.5.3 版本,IDLE 开发环境。

单项选择题 40 分( 含公共基础知识部分 10 分,数据结构与算法和python基础知识 30 分 )。

****选择题20分以下直接暴毙,所以把握基础很重要****

操作题 60 分( 包括基本编程题 40 分和综合编程题 20 分 )。

 ****注意合理分配时间,该扔的扔,真男人不只有 一条路可以走****

二、试题类型分析

1.单选题:单选题主要是由计算机基础、数据结构与算法和python基础知识三个部分组成,前两个部分是二级必考,第三部分则是python特有,分值占比会大一些,但绝大部分都是基础题,熟练掌握基础便可获得大部分分数。

2.基础编程题:题目会给一段写好的代码,描述代码作用,或者告知代码描述,让填写缺失的代码。这需要考生具备一定的代码阅读水平,才能准确完成题目。

3.编程题:一道自由度比较高的题目,需要调用各种和python编程相关的知识来解决,熟练掌握基础是过关的秘诀。

三、考试内容


1.python基本语法和元素(综合难度:⭐)

(1)程序的格式框架、缩进、注释、变量、命名、保留字、数据类型、赋值语句、引用。(难度:⭐)

(2)掌握常规的的IO读写,eval()、input()、print()的用法。(难度:⭐)

(3)掌握关键保留字(难度:⭐⭐)       

   from,import 
   true,false  
   if,elif,else,is,in,and,not,or  
   for,while,continue,break  
   assert,try,except,finally,raise  
   def,lambda,return  
   whit,as
   class,del,pass,gloabl,nonlocal,none,yield

 ****关于eval()函数,深入了解请进传送门https://blog.csdn.net/qq_29883591/article/details/53443062****

#lambda  匿名函数

g = lambda x:x+1
print(g(1))    #运行结果:2


#nonlocal  用来在函数或其他作用域中使用外层(非全局)变量。
#global  定义全局变量

a = 100
def outer():
    b = 10
    def inner():
        nonlocal b  # 声明外部函数的局部变量
        print("inner b:", b)
        b = 20
        global a  # 声明全局变量
        a = 1000
    inner()
    print("outer b:", b)
outer()
print("a:", a)     #运行结果:inner b: 10  outer b: 20  a:1000


#yield  用起来像return。yield在告诉程序,要求函数返回一个生成器

def createGenerator():
    for i in range(3):
        yield i*i
print(createGenerator())     #运行结果:<generator object createGenerator at 0x000002C9737C42E0>


#raise  抛出异常

2.基本数据类型(综合难度:⭐⭐)

(1)数字类型:包括int(整数类形)、float(浮点数类型)、complex(复数类型)和bool(布尔型,数字里面的布尔型不是指True和False,指的是1和0)。

下面为需要掌握的相关函数:

divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。

abs() 函数返回数字的绝对值。

pow() 方法返回 xy(x的y次方)的值。

 round(x,n)返回浮点数x四舍五入后保留n位小数的值。

min(),max()会返回给定序列的最小/最大值。

(难度:⭐)

(2)字符串类型:需要掌握引索、切片以及基本的format()格式化的方法。

以下为需掌握的函数:

chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。

ord() 函数是 chr() 函数(对于8位的ASCII字符串)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值。

oct() 函数将一个整数转换成8进制字符串。

hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。

len() 方法返回对象(字符、列表、元组等)长度或项目个数。

str()返回一个对象的string格式。

str也内置了很多对字符串进行操作的函数:

string.upper()转换string 中的小写字母为大写

string.lower()转换string 中的小写字母为小写

string.capitalize()把字符串的第一个字符大写

string.find(str,beg=0, end=len(string)) 检测 str 是否包含在 string 中,如果 beg 和end 指定范围,则检查是否包含在指定范围内,如果是返回 开始的索引值,否则返回-1。

string.join(seq)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串。

string.rfind(str,beg=0,end=len(string) ) 类似于 find()函数,不过是从右边开始查找。

(难度:⭐⭐)

(3)数据类型的判断转化

熟练运用int()、float()、str()根据条件进行转化。(难度:⭐)

import math

a, b, c ,d, e = map(float, input("请输入5个数:").split())

print("以第一个数为半径的圆的面积:{}".format(math.pi * a**2))

b = round(b, 0)
c = round(c, 0)
print("以第二第三个数分别取四舍五入组成复数:{0}\n求模:{1}".format(complex(b, c), (pow(b, 2)+pow(c, 2))**0.5))

print("第四第五个数的商和余数的元组:{}".format(divmod(d, e)))


string = input("请输入一个字符串(注意中间加个_):")

print("将字符串从中间_处切成两块:{}".format(string.split("_")))

print("以 string 作为分隔符,将字符串'123'合并为一个新的字符串:", string.join("123"))

print("字符串长度为:", len(string))

print("转换string 中的小写字母为大写:", string.upper())

print("转换string 中的大写字母为小写:", string.lower())

print("把字符串的第一个字符大写:", string.capitalize())

print("检测'b'是否包含在 string 中(左面开始):", string.find("b"))
      
print("检测'b'是否包含在 string 中(右面开始):", string.rfind("b"))

print("string切片处理:", string[0:3])   #遵循左闭右开原则

3.程序的控制结构(综合难度:⭐⭐)

(1)了解三种控制结构:顺序结构、分支结构、循环结构(难度:⭐)

(2)重点把握分支结构(难度:⭐)

单分支结构 if à if à if,所有if都处在同一级

双分支结构 if à else if,判断if后会出现下一级else if

多分支结构 if à else ifà else,如果前面所有条件都不满足,最后一级else便不用进行条件判断直接进入。

(3)程序的循环结构(难度:⭐⭐)

while 引导的无限循环

for 引导的遍历循环

continue 跳过本轮循环

break 跳出循环
(4)异常处理:掌握try-except的用法(难度:⭐⭐)

#九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print("{0}*{1}={2}  ".format(j, i, j*i), end = "")
        if j == i:
            print("\n")

4.函数和代码的复用(综合难度:⭐⭐)

(1)def定义函数:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(),任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数,return 表达式 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

(2)函数的参数(难度:⭐⭐)

默认参数:使用默认参数的时候,如果给形参传递了实参,则形参会接收实参的值。如果没有给这个形参传递实参,则形参会采用默认值。

位置参数:实参和形参的数量上必须要保持一致。

关键字参数:通过定义关键字获取实参的值,与形参的顺序无关。

可变参数:形参的数据会根据实参的数量的变化而变化。
(3)变量的作用域:区分好局部变量与全局变量的作用范围。(难度:⭐)

5.组合数据类型(综合难度;⭐⭐)

(1)列表(序列)(难度:⭐⭐)

序列都可以进行的操作包括索引,切片,加,乘,检查成员,此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法,序列是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现,下面是一些需要掌握的对列表的一些操作。

list.append(obj)在列表末尾添加新的对象

list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.insert(index,obj)将对象插入列表

list.pop([index=-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj)移除列表中某个值的第一个匹配项

list.reverse()反向列表中元素

list.sort(cmp=None,key=None, reverse=False)对原列表进行排序

list.count(obj)统计某个元素在列表中出现的次数

list = [85, 69, "lp", "gctj", [5, 6]]

print("列表为", list)

print("在列表末尾添加新的对象'404' :{}".format(list.append("404")), list)

print("在列表末尾一次性追加[1,2,3,4]:", list.extend([1,2,3,4]), list)

print("将对象'404'插入列表末尾:", list.insert(-1,"404"), list)

print("移除list[1]并返回该元素的值 :", list.pop(1), list)

print("移除列表中'404'的第一个匹配项:", list.remove("404"), list)

print("反向列表:", list.reverse(), list)
 
print("统计'404'在列表中出现的次数:", list.count("404")) 

list2 = [3,89,51,46,589,2]

print("对列表2按升序排序 :", list2.sort(reverse=False), list2)

print("对列表2按降序排序 :", list2.sort(reverse=True), list2)

(2)元组(难度:⭐)

Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。此外,元组中只包含一个元素时,需要在元素后面添加逗号。

(3)字典(难度:⭐⭐⭐)

字典是另一种可变容器模型,且可存储任意类型对象,字典的每个键值key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号{}中。键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一;值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

字典需要掌握一下方法:

dict.clear()删除字典内所有元素

dict.copy()返回一个字典的浅复制

dict.fromkeys(seq[, val])创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值

dict.get(key,default=None)返回指定键的值,如果值不在字典中返回default值

dict.has_key(key)如果键在字典dict里返回true,否则返回false

dict.items()以列表返回可遍历的(键, 值) 元组数组

dict.keys()以列表返回一个字典所有的键

dict.update(dict2)把字典dict2的键/值对更新到dict里

dict.values()以列表返回字典中的所有值

dict.pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值。

dict.popitem()返回并删除字典中的最后一对键和值。

dic = {"il":5, "oj":45, "yub":74, 1:1}

print("浅复制字典", dic.copy())

print("创建一个新字典:{}".format(dic.fromkeys([1, 2, 3])), dic)

print("返回指定键1的值:", dic.get(1))

#print("判断键'oj'是否在字典里:", dic.has_key("oj"))      #会因版本兼容问题报错

print("返回可遍历的(键, 值):", dic.items())

print("返回所有的键:", dic.keys())

print("返回所有的值:", dic.values())

print("返回并删除字典中的最后一对键和值:", dic.popitem(), dic)

print("把键/值对{3:'l'}更新到dic里:", dic.update({3:'l'}), dic)

print("删除字典给定键 key 所对应的值,返回值为被删除的值:", dic.pop(3), dic)

print("清空字典:", dic.clear(), dic)

(4)集合(难度:⭐⭐)(大纲中没有)

集合(set)是一个无序的不重复元素序列,可以使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用 set() 而不是{},因为{}是用来创建一个空字典。

下面是集合的一些操作:

set.add(x)元素x添加到集合s中,如果元素已存在,则不进行任何操作。

set.remove(x)将元素x从集合s中移除,如果元素不存在,则会发生错误。

len(s) 计算集合s元素个数。

set.clear() 清空集合s。

set.pop()随机移除元素

s1.symmetric_difference(s2)返回两个集合中不重复的元素集合

s1.union(s2)返回两个集合的并集

s1.symmetric_difference_update(s2)移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

s1.difference(s2)返回多个集合的差集

set = {1, 2, 7, 6}

print("元素'h'添加到集合s中:{}".format(set.add("h")), set)

print("元素'h'从集合s中移除:", set.remove("h"), set)
 
print("随机移除元素 :", set.pop(), set)
 
print("清空集合:", set.clear(), set)

set1 = {1,5,9,6,7}
set2 = {5,9,2,0,8}

print("两个集合中不重复的元素集合:", set1.symmetric_difference(set2))

print("两个集合的并集:", set1.union(set2))

print("两个集合的差集:", set1.difference(set2))

print("移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中:", set1.symmetric_difference_update(set2), set1)

6.文件和数据格式化(综合难度:⭐⭐⭐)

(1)文件的打开、关闭和读写(难度:⭐⭐)

open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出OSError。完整的语法格式为:

open(file,mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

文件打开模式:

x 写模式,新建一个文件,如果该文件已存在则会报错

b二进制模式

a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式

w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

+打开一个文件进行更新(可读可写)。

互不冲突的打开模式可以可以进行叠加,比如ab表示以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

file.close() 关闭文件。关闭后文件不能再进行读写操作
(2)对一维数据和二维数据的表示、储存和处理以及采用CSV格式对一二维数据的文件的读写。(难度:⭐⭐⭐)

 ****一维二维数据,深入了解请进传送门https://www.xiaoheidiannao.com/11390.html****

7.python中的库(综合难度:⭐⭐⭐,需要记忆的量大)

(1)turtle库(必选)(难度:⭐⭐)

绘制状态函数:pendown()、penup()、pensize()以及对应别名为pd()、pu()、width();

颜色控制函数:color()、pencolor()、begin_fill()、end_fill();

运动控制函数:forward()、backward()、right()、left()、setheading()、goto()、circle()以及对应别名fd、bk()、rt()、lt()、seth()

(2)random库(必选)

考查seed()、random()、randint()、getrandbits()、randrange()、uniform()、choice()、shuffle()、sample()

(3)time库(可选)

时间处理函数:time()、gmtime()、localtime()、ctime()

时间格式化函数:mktime()、strftime()、strptime()

计时函数:sleep()、perf_counter()

(4)PyInstaller库(必选)

记住pyinstaller打包文件的命令pyinstaller-Fc:\...\your_python_file.py即可

(5)jieba库(必选)

jieba.lcut()

(6)wordcloud库(可选)

(7)更广泛的 Python 计算生态,只要求了解第三方库的名称,不限于以下领域:

网络爬虫:requests、scrapy、pyspider

数据分析:numpy、pandas、scipy

文本处理:pdfminer、python-docx、beautifulsoup4

数据可视化:matplotlib、seaborn、mayavi

用户图形界面:PyQt5、wxPython、PyGObject

机器学习:scikit-learn、TensorFlow、mxnet

Web开发:Django、pyramid、flask

游戏开发:pygame、Panda3D、cocos2d

四、必备网站

计算机二级官网:http://ncre.neea.edu.cn/     
刷题交流网站python123:https://python123.io/        ****很多人推荐,我瞅了眼感觉也可,推一波!****

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值