考纲
turtle
必考random
必考PyInstaller
必考jieba
必考time
可选
turtle库
模块导入
import turtle
,则对turtle库中函数调用采用turtle.<函数名>()
形式。from turtle import *
,则对turtle
库中函数调用直接采用<函数名>()
形式,不再使用turtle.作为前导。import turtle as t
,则对turtle
库中函数调用采用更简洁的t.<函数名>()
形式,保留字as
的作用是将turtle库给予别名t
。turtle
库包含100多个功能函数,主要包括窗体函数、画笔状态函数、画笔运动函数等三类。
窗体函数
turtle.setup(width, height, startx, starty)
- 作用:设置主窗体的大小和位置
- 参数:
width
:窗口宽度,如果值是整数,表示的像素值;如果值是小数,表示窗口宽度与屏幕的比例;height
: 窗口高度,如果值是整数,表示的像素值;如果值是小数,表示窗口高度与屏幕的比例;startx
:窗口左侧与屏幕左侧的像素距离,如果值是None,窗口位于屏幕水平中央;starty
:窗口顶部与屏幕顶部的像素距离,如果值是None,窗口位于屏幕垂直中央;
画笔状态函数
- turtle中的画笔(即小海龟)可以通过一组函数来控制,其中
turtle.penup()
和turtle.pendown()
是一组,它们分别表示画笔的和落下,函数定义如下:turtle.penup()
别名turtle.pu()
,turtle.up()
作用:抬起画笔,之后,移动画笔不绘制形状
参数:无turtle.pendown()
别名turtle.pd()
,turtle.down()
作用:落下画笔,之后,移动画笔将绘制形状
参数:无
turtle.pensize()
函数用来设置画笔尺寸
-turtle.pensize(width)
别名turtle.width()
作用:设置画笔宽度,当无参数输入时返回当前画笔宽度
参数:
width
:设置的画笔线条宽度,如果为None或者为空,函数则返回当前画笔宽度。turtle.pencolor()
函数给画笔设置颜色turtle.pencolor(colorstring)
或者turtle.pencolor((r,g,b))
作用:设置画笔颜色,当无参数输入时返回当前画笔颜色
参数:
colorstring
:表示颜色的字符串,例如:“purple”、“red”、"blue"等
(r,g,b)
: 颜色对应RGB的01数值,例如:1, 0.65, 0
画笔运动函数
画笔状态函数
turtle.fd()
函数最常用,它控制画笔向当前行进方向前进一个距离turtle.fd(distance)
别名turtle.forward(distance)
作用:向小海龟当前行进方向前进distance距离
参数:distance :行进距离的像素值,当值为负数时,表示向相反方向前进。
turtle.seth()
函数用来改变画笔绘制方向turtle.seth(to_angle)
别名turtle.setheading(to_angle)
作用:设置小海龟当前行进方向为to_angle,该角度是绝对方向角度值。
参数:to_angle :角度的整数值。
turtle.circle()
函数用来绘制一个弧形turtle.circle(radius, extent=None)
作用:根据半径radius绘制extent角度的弧形。
参数:
radius :弧形半径,当值为正数时,半径在小海龟左侧,当值为负数时,半
径在小海龟右侧;
extent : 绘制弧形的角度,当不给该参数或参数为None时,绘制整个圆形。
海龟库会考一些很坑的东西,要注意细节,这个需要多做和细心。
random库
jieba
jieba
库是一款优秀的 Python 第三方中文分词库,jieba
支持三种分词模式:精确模式、全模式和搜索引擎模式,下面是三种模式的特点。
精确模式:试图将语句最精确的切分,不存在冗余数据,适合做文本分析
全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据
搜索引擎模式:在精确模式的基础上,对长词再次进行切分
现在来补充这里已经是2019年三月份考完了,整个做下来感觉前面讲的用的非常少,反而这个jieba分词考的非常多。考试一共有5道编程题,最后两个大题都陆陆续续的要用到结巴分词,所以可见对这个非常的重视。但是今年考的却非常的简单,用到的知识很少很少,所以来补充一下考试的内容。
(本次)考试中常用的函数为:
list1 = jieba.lcut('终于考完了')
其实在输入的字符串后面可以加一些参数,但是好像没用上,因为jieba分词默认为精确模式,分出来的词蛮准确的。但是对于一些人名可能会出错误,比如‘迪丽热巴’就有可能会被分成两个。jieba的这个lcut
可以将后面输入的字符串分词之后返回一个列表,其中是所有的词语。比如:
In [2]: string = 'jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分
...: 词模式:精确模式、全模式和搜索引擎模式,下面是三种模式的特点。'
In [3]: list1 = jieba.lcut(string)
In [5]: print(list1)
['jieba', '库是', '一款', '优秀', '的', ' ', 'Python', ' ', '第三方', '中文', '分', '词库', ',', 'jieba', ' ', '支持', '三种', '分', '词模式', ':', '精确', '模式', '、', '全', '模式', '和', '搜索引擎', '模式', ',', '下面', '是', '三种', '模式', '的', '特点', '。']
可以发现,它分的很准,同时还把标点符号分了出来,这些一般是不需要的,需要剔除。
而考试中最喜欢用的是统计词频(反正我的那套题是这样的),这时最好的方法就是使用一个字典对其进行储存,通过遍历列表中的每一个元素来统计个数:
dic = {}
for word in list1:
if word not in [' ', '', ',', '。','\n']:
dic[word] = dic.get(word, 0) + 1
print(dic)
In [17]: print(dic)
{'jieba': 2, '库是': 1, '一款': 1, '优秀': 1, '的': 2, 'Python': 1, '第三方': 1, '中文': 1, '分': 2, '词库': 1, '支持': 1, '三种': 2, '词模式': 1, ':': 1, '精确': 1, '模式': 4, '、': 1, '全': 1, '和': 1, '搜索引擎': 1, '下面': 1, '是': 1, '特点': 1}
如果想实现由大到小排列,可以使用以下代码:
dictls = list(dic.items())
dictls.sort(key=lambda x: x[1], reverse=True)
In [21]: print(dictls)
[('模式', 4), ('jieba', 2), ('的', 2), ('分', 2), ('三种', 2), ('库是', 1), ('一款', 1), ('优秀', 1), ('Python', 1), ('第三方', 1), ('中文', 1), ('词库', 1), ('支持', 1), ('词模式', 1), (':', 1), ('精确', 1), ('、', 1), ('全', 1), ('和', 1), ('搜索引擎', 1), ('下面', 1), ('是', 1), ('特点', 1)]
pyInstaller
- 可以将源文件打包,变为可执行的程序
- 这个应该不会考编程题(只是我的推测),但是会作为选择题问一些细节。
以上有关卷子难度的言论,都是建立在第二次开考的基础之上的,不能排除日后会越来越难的可能性。所以光看几篇博客和学习贴是远远不够的,一定要刷题!尤其是嵩天(python二级的发起人)的python123网站上的题,出题人给你的题最好还是做一下,最好还是花钱买个一季的卷子做着玩,因为里面涉及到很多很多数据库,数据结构方面的东西(比如二叉树呀,链表,队列,双向单向啥的),如果没有教材,就得靠做题来记住知识。
最后,祝所有二级考生首考通过!