PYTHON 期末复习
python整份整份的整理和打包哦
嗐,这咋就复习周了,除了期中监考和实验课,老师都没见着
unit 1 Python编程基础知识掌握程序设计语言的分类,重点掌握编译与解释执行的异同点
了解Python语言的发展历史,理解Python语言的特点
掌握Python程序的编写方法
重点掌握Python开发环境的配置及其使用方法
了解Python版本更迭过程和新旧版本的主要区别
程序设计语言的分类
机器语言:二进制,计算机硬件可识别,可表示简单操作;1000100111011000
汇编语言:将机器指令映射为一些辅记符,抽象层次低,需要考虑机器细节 mov ax,bx
高级语言:面向用户的、基本上独立于计算机种类和结构、接近自然语言 a=b
执行方式:编译与解释
将源代码转换为目标代码
编译:一次性翻译,之后不再需要源代码;静态语言,C/C++,java
解释:每次程序运行时随翻译随执行;脚本语言,Python,javaScript,PHP
Python语言的特点
语法简洁,与平台无关(跨平台运行),粘性扩展,开源理念,通用灵活,强制可读(强制缩进),支持中文(UTF-8),模式多样,类库丰富
Python开发环境的配置
下载解释器网址:www.python.org/downloads/
Python程序解释及运行
方法一:交互式IDLE
逐条语句运行和观察
方法二:文件式
将Python程序写在一个或多个文件中,然后启动解释器批量运行
unit2 Python程序实例解析理解实例的语句功能
了解Python常用的语法元素的概念:注释、缩进、常量与变量、标识符与命名、运算符、类与实例、函数、循环结构、分支结构等
掌握help函数的使用方法
理解Python函数封装------>def函数
掌握Python标准库turtle的导入与使用方法
实例一:药物相似度计算
实例二:苯环绘制
绘制一个苯环
绘制30个随机颜色、大小、位置的苯环
turtle库语法元素
turtle.setup(width,height,startx,starty)设置主题窗口大小和起始位置
turtle.penup(),turtle.pendown()抬起画笔放下画笔
turtle.pensize(width)设置画笔宽度
turtle.pencolor(colorstring)or((r,g,b))设置画笔颜色(RGB取值范围(0,255))
turtle.fd(distance)当前方向前进
turtle.seth(to_angle)设置前进方向
turtle.circle(radius,extent=None)根据半径绘制extent角度的弧形
语法元素
*数据、常量、变量
程序中常常需要处理一些数据,这些数据在程序中直接以其值来表征它,因此也称字面值常量
数据经由用户从键盘输入->内存存储;使用数据计算时,内存取出->中央处理器
采用标识符(变量名)来代表程序中需要处理或存储的、其值可变的数据,称为变量
*命名与保留字
命名规则:
允许大写字母、小写字母、数字、下划线和汉字等字符,长度没有限制;首字符不能是数字;中间不能出现空格;不能使用保留字命名
保留字:
被编程语言内部定义并保留使用的标识符
*输入与输出
input()-输入,无论用户在控制台输入什么内容,都以字符串类型返回结果
print()-输出
eval(<字符串>)-将输入的字符串转变成python语句,去掉引号后进行解释
*函数
完成一定功能的工具,使用时需要遵循一定的语法格式
*运算符
表示一定的操作过程的符号
*类、实例、方法
类:class,一种用户定义的数据类型,用于抽象和描述现实中的某一类型
实例:instance,用于表征程序中需要用到的某一个类型的具体对象
实例方法:属于某个类中的函数,通常用于描述适用于该类实例对象的某种功能。调用时需要以实例名.的形式调用
e.g.Turtle类的实例方法pensize\pencolor\circle
*库、import
库:一组具有相关功能的函数和类等的集合
import:使用某个库中的函数和类(以及类中的方法)
import的写法:
from random import randint
import random
from random import*
import random as r
*循环结构
对同一段代码重复执行若干次,直到执行完指定的次数或达到一定的结束条件
*缩进
每一行代码开始前的空白区域,用来表示代码之间的层次和包含关系,表明程序框架的唯一手段
*分支结构,赋值语句
分支:根据判断条件选择程序执行路径
”=“表示赋值
*注释
辅助性文字,会被编译或解释器略去,不被计算机执行
单行注释:以#开头
多行注释:以‘’‘开头和结尾
unit3 基本数据类型
1.掌握数字类型的3种分类:整数、浮点数和复数,熟悉整数的4种进制;
2.掌握数字类型的表示方法;
3.掌握数字类型的运算操作符及运算符的优先顺序,理解数值运算的结果类型;
4.掌握操作数字类型的内置函数,重点掌握9个内置函数:abs()、divmod()、pow()、round()、max()、min()、int()、float()和type();
5.熟悉math库的常量和函数,做到需要时查阅使用;
6.通过案例"天天向上的力量",进一步熟练掌握数字类型的操作;
7.理解字符串类型的概念及适用场景;
8.掌握字符串类型的表示方法,能区分数值和数字字符串;
9.熟练掌握字符串的操作运算符,包括+、*、in、索引和切片;
10.掌握操作字符串的内置函数,重点掌握len()、str()、chr()和ord();
11.掌握操作字符串的内置方法,重点掌握str.lower()、str.upper()、str.isnumeric()、str.isspace()、str.split()、str.replace()、str.strip()、str.format()、str.join()和str.find();
12.通过案例"文本进度条",进一步熟练掌握字符串类型的操作
*数字类型及其操作
数字类型的概念及表示
整数:十进制(无引导符,默认),二进制(以0b或0B引导),八进制(以0o或0O引导),十六进制(以0x或0X引导),整数运算无误差
浮点数:带有小数点的数字,两种表示方法:十进制法(带小数点)和科学计数法,最多可输出17个数字,有效数位为15位(存在误差)
复数:a+bj,a和b都是浮点数类型
数字类型的数值运算操作符
增强赋值操作符:+=,-=,*=,/=,//=,%=,**=
数值运算的结果类型:更大集合对应的类型,整数->浮点数->复数
数值运算函数
数字类型转换函数
类型判断函数
type(x):返回x的类型,适用于所有类型的判断
*math库的使用
查阅使用
*数字类型案例:天天向上的力量
1.如果每天学习python,每天能力提升1%,一年以后?
2.改为5天工作制,工作日每天学习能力提升,休息日每天能力同比下降,一年以后?
3.如果5天工作制,工作日要能力提升多少才能和每天学习效果一样呢?
字符串类型的概念和表示
用一对单引号’ ‘,双引号” “,或三引号’‘’ ‘’‘括起来相应的一或多个字符,’ ‘和” “都可以表示单行字符串,’‘’ ‘’‘可以表示单行或多行字符串
字符串用print()函数输出后,定界符引号不显示在屏幕上
表示内含引号的字符串,单双引号要配合使用,外单内双,内单外双
关于python转义符:\t表示制表符Tab,\n表示换行符,\r将光标定位到当前行的行首,\b将光标回退一位
字符串中如果出现特殊含义的符号:在特殊含义符号和转义符前再加一个转义符,C:\table,print('C:\\table')
字符串操作符
索引
字符串处理函数
字符串处理方法
str.format():实现python数据的格式化输出
<模板字符串>.format(<逗号分隔的参数>):
<模板字符串>的构造:由需要原样输出的字符嵌入一些槽构成,槽的个数=<逗号分隔的参数>
槽内部具体结构:{<参数序号>:<格式控制标记>}
*字符串类型案例:文本进度条
*逻辑类型及其操作
数据只有两个:True,False
操作
运算
unit4 程序的控制结构了解结构化程序三种基本控制结构:顺序结构、分支结构、循环结构
重点掌握各类分支结构(if、if-else、if-elif-else的具体用法)
重点掌握遍历循环、条件循环结构(for语句、while语句、break和continue语句的具体用法)
掌握random库的常用函数
理解应用蒙特卡罗方法求解π的方法与代码
了解python异常处理的基本语句try-except及其高级用法
*程序的基本结构
顺序结构:按照线性顺序依次执行
分支结构:程序根据条件判断结果而选择不同向前执行路径的一种运行方式,包括单分支结构和二分支结构
循环结构:程序根据条件判断结果向后反复执行的一种运行方式,根据循环体条件的不同包括条件循环和遍历循环
*程序的分支结构
单分支结构-if语句:
if <条件>:
<语句块>
<条件>是一个产生True或False结果的判断,当结果为True时,执行语句块
关系操作符:<,<=,>,>=,==,!=
二分支结构-if-else结构:
if <条件>:
<语句块1>
else:
<语句块2>
或者:<表达式1> if <条件> else <表达式2>
多分支结构-if-elif-else结构:
if <条件1>:
<语句块1>
elif <条件2>:
<语句块2>
...
else:
<语句块n>
*程序的循环结构
遍历循环-for语句:
从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。
for <循环变量> in <遍历结构>:
<语句块>
遍历结构可以是range()、字符串、组合数据类型或文件等
range(start,stop[,step]):计数到stop结束,但不包括stop
for <循环变量> in <遍历结构>:
<语句块1>
else:
<语句块2>
条件循环-while语句:
一直保持循环操作直到特定循环条件不被满足才结束,不需要提前确定循环次数。
while <条件>:
<语句块>
也可以:
while <条件>:
<语句块1>
else:
<语句块2>
循环保留字:
break:跳出最内层for or while 循环,脱离循环后,程序从循环后的代码继续执行。
continue:用来结束当前当次循环,跳出当前循环体中下面尚未执行的语句,但不跳出当前循环。对else没有影响
*random库的使用
*实例-π的计算-蒙特卡罗方法
*程序的异常处理-try-except语句
try:
<语句块>
except <异常类型1>:
<语句块1>
....
except <异常类型N>:
<语句块N>
与finally和else等保留字一起使用
try:
<语句块1>
except <异常类型>:
<语句块2>
else:
<语句块3>
finally:
<语句块4>
unit5 函数和代码复用掌握函数的定义方法,包括def和lambda函数
理解函数调用的执行过程
掌握函数的参数类型和使用方法
掌握标准函数库datetime 的使用方法
熟悉自定义函数的定义方法
掌握递归函数的定义方法和斐波拉契数列算法
掌握并熟练使用常见的python内置函数
*函数的概述
概念:具有特定书写格式,包含若干条可被作为一个整体执行的语句,可以实现特定功能
类别:用户自定义函数、python内置函数(直接调用)、python标准库函数(import库后调用)、第3方库函数(pip安装、import导入后使用)
目的:降低编码的难度,实现代码复用,增强程序的易读性
def定义函数
lambda函数-匿名函数
函数调用
*调用函数在调用处暂停执行
*在调用时将实参复制给函数的形参
*执行被调用函数的语句组
*如果函数有返回值,则将返回值赋值给调用函数中的相应变量
*程序继续执行
参数设置与参数传递
可选参数:定义了默认值,在调用时可以不给定实参,也可以给定实参
可变数量参数:通过参数前加(*)实现,可变数量参数可以从实参处获得可变数量的数据
定义顺序:必选参数->可选参数->可变数量参数
参数传递:按照位置传递参数,按照名称传递参数
函数的返回值
return:退出该函数,返回的值传递给调用函数(可同时返回多个结果)
也可以没有return 语句,此时没有返回值
变量的作用域
全局变量:在函数之外定义的变量,没有缩进,在程序执行的全过程有效
局部变量:在函数内部定义的变量,仅在缩进内部有效,当函数退出时变量不复存在
*Datetime库的使用
类:另一种形式的抽象与分装
datetime库,以类的方式提供多种日期和时间的表达方式
*datetime.date:日期表示类
*datetime.time:时间表示类
*datetime.datetime:日期和时间表示类
*datetime.timedelta:与时间间隔有关的类
*datetime.tzinfo:与时区有关的信息表示类
datetime类的使用方法
首先创建一个datetime对象,然后通过对象的方法和属性显示时间
*创建对象:datetime.now()-表示当前的时间,精确到微秒,datetime.utcnow()-表示当前日期和时间的UTC表示,精确到微秒,datetime.datetime(year,month,day,hour=0,munite=0,second=0,microsecond=0)-表示指定的日期和时间,精确到微秒
程序已经有了一个对象之后,比如上面的someday,可以进一步用这个对象的属性显示时间:
*格式化
格式化方法3种
格式化字符串
*函数的递归
递归的定义
在函数定义语句中,包括了调用函数自身的方式
递归的两大要素:函数+分支:递归本身是个函数,函数内部需要分支语句对输入参数进行判断;基例+链条:存在一个或多个基例,不需要再次递归,它可以得到确定的结果值
斐波拉契数列
*内置函数
all():一般针对组合数据类型,如果其中每个元素都是True,则返回True,否则返回False。整数0,空字符串“”,空列表都是False。
any():有一个True,就返回True
hash():对于能够计算哈希的类型返回哈希值
id():返回数据的内存地址
reversed():返回输入组合类型的逆序形式
type():返回数据或变量的类型
sorted():对可迭代对象进行排序并返回新列表
zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,返回由这些元素组成的新列表pow(base, exp, mod=None):Equivalent to base**exp with 2 arguments or base**exp % modwith 3 arguments
unit6 组合数据类型理解基本统计值计算和Python之禅实例的代码
理解序列、集合和映射类型的概念
理解列表、元组的概念并掌握Python中列表、元组的使用
理解字典的概念并掌握字典的使用方法
掌握利用组合数据类型进行文本词频统计的方法和代码
*组合数据类型概述
序列类型
一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他;字符串、元组、列表
元组:包含0个或多个数据项的不可变序列类型。元素生成后是固定的,其中任何项不能替换或删除;"()"
列表:是可以修改数据项的序列类型;“[]”
序列类型的操作符
集合类型
一个元素集合,元素之间无序无重复,相同元素在集合中唯一存在;集合"{}"
生成:也可以使用set函数生成集合,输入的参数可以是任意组合数据类型
>>> a=set("apple")
>>> a
{'l', 'p', 'e', 'a'}
集合中元素只能是固定数据类型:int,float,str,tuple.etc.;列表,字典,集合本身是可变数据类型,不能作为元素
集合操作函数
映射类型
“键-值”数据项的组合,每个元素是一个键值对;字典
*列表、元组类型
列表类型
长度和内容都是可变的,没有长度限制,可以同时使用正向递增序号和反向递减序号
生成:用中括号[]表示,使用list()函数将元组或字符串转换为列表,直接使用list()函数返回空列表
比较:可以采用标准的比较操作符(<,<=,>,>=,==,!=)进行比较,实际上是单个数据项的比较
函数和方法
元组类型
*字典类型
用{}构建,建立模式:{<键1>:<值1>,<键2>:<值2>...,<键n>:<值n>}
属于集合类型,元素无序,不可以通过序号查找,但可以通过键查找:<值>=<字典变量>[<键>]
某个键值的修改:中括号的访问和赋值
增加元素:通过中括号
>>> dic={'1':'100','2':'200','3':'300'}
>>> dic['4']='400'
>>> dic
{'1': '100', '2': '200', '3': '300', '4': '400'}
*文本词频统计的方法和代码
unit7 文件和数据格式化重点掌握文件的读写、打开、关闭等基本操作
理解数据组织的维度及其特点
重点掌握一二维数据的存储格式和读写方法
了解高维数据的存储格式和读写方法
*文件的使用
文本文件:一般由单一特定编码的字符组成,如UTF-8编码
二进制文件:直接由0和1组成,没有统一的字符编码
采用文本方式读入文件,文件经过编码形成字符串,打出相应有含义的字符;采用二进制方式读入文件,文件被解析为字节流。由于存在编码,字符串中的1个字符由两个字节表示
文件的打开关闭
python对文件采用统一的操作步骤:“打开-操作-关闭”
<变量名>=open(<文件名>,<打开模式>)#打开
<变量名>.close()#关闭
文件名可以是文件的实际名字(要求文件在当前路径下),也可以是包含完整路径的名字
'r'or'w'or'x'or'a'(不能同时写两种)+'b'or't'(不能同时写两种),或者‘r/w/x/a+’
文件的读写
文件内容的读取
文件的写操作
*一二维数据的格式化和处理
一维数据:由对等关系的有序或无序数据构成,采用线性方式组织
二维数据:由关联数据构成,采用表格方式组织
高维数据:由键值对类型的数据构成,采用对象方式组织
CSV:逗号分隔数值的存储格式
*CSV文件的每一行是一维数据,可以用列表类型表示,多行表示二维数据,由表示每一行的列表类型作为元素,组成一个二维列表
*纯文本格式,以行为单位,开头不留空行,行之间没有空行
*以逗号分隔每列数据,列数据为空也要保留逗号
*可以包含或不包含列名,包含列名时放置在文件第一行
*对于列表中存储的二维数据,可以通过循环写入一维数据的方式写入CSV文件
for i in ls:
<输出文件>.write(",".join(i)+"\n")
*高维数据的格式化
JSON格式可以对高维数据进行表达和存储,表达键值对的格式:"key":"value".键值对都保存在双引号中
#数据保存在键值对中 #键值对之间用逗号分隔 #大括号用于保存键值对数据组成的对象 #方括号用于保存键值对数据组成的数组
unit8 Python应用了解Python 源文件的打包方法
掌握Python 第三方库的安装方法
*python第三方库安装
pip工具安装:python官方提供并维护的在线第三方库安装工具,是python内置命令,需要通过命令行执行;支持安装(install)、下载(download)、卸载(uninstall)、列表(list)、查看(show)、查找(search)等一系列安装和维护
自定义安装:按照第三方库提供的步骤和方式安装
文件安装:下载.whl文件