目录
- 1.Python基础复习
- 2.数值函数
- 2.1复数类型:
- 2.2内置的数值运算函数(共6个)
- 2.3内置的数字类型转换函数(共3个)
- 2.4math库的数学常数
- 2.5math库的高等特殊函数
- 2.6math库的幂对数函数
- 2.7math库的三角运算函数
- 3.基本的字符串操作符
- 4.内置的字符串处理函数
- 5.常用的内置字符串处理方法
- 5.1 程序的循环结构:
- 5.2random库的常用函数
- 5.3程序的异常处理
- 5.3.1异常处理的高级用法
- 6.datetime库概述
- 6.1datetime类常用属性
- 7.python内置函数
- 8.组合数据类型
- 8.1序列类型
- 8.2集合类型
- 8.3列表类型
- 9.字典类型
- 9.1jieba库的使用
- 10.文件和数据格式化
- 11.PIL库的使用
- PIL库Image类解析
1.Python基础复习
日期和时间的输出
from datetime import datetime
now=datetime.now()
now.strftime("%x") #输出其中日期部分
now.strftime("%X") #输出其中时间部分
python无法进行高精度浮点数运算,例如1.23456789*2.3456789,但是我们可以通过去掉小数点,当整数运算,则可以确定精准值:
拓展:高精度浮点运算类型
Python通过标准库decimal提供了一个更精度的数字类型Decimal,并可以使用getcontext().prec
参数自定义浮点数精度的位数,例如:
>>> import decimal
>>> a=decimal.Decimal('3.141592653')
>>> b=decimal.Decimal('4.123232323232')
>>>> decimal.getcontext().prec=5
>>> a*b
#Decimal('12.954')
2.数值函数
2.1复数类型:
前言:
复数类型表示数学中的复数。很久以前,数学界被求解如下等式难住了:
x2 = -1
这是因为任何实数都不是上述等式的解。直到18世纪,数学家发明了“虚数单位”,记为j,并规定j=√-1
。围绕这个特殊数字出现了新的数学分支,产生了“复数”。对于一个实数n,根据上述定义,nxjxj的值是-n
复数可以看做是二元有序实数对(a,b),表示为a+bj,其中,a是实数部分,简称实部,b是虚数部分,简称虚部。 12.3+4j 对于复数z,可以用`z.real`和`z.imag`分别获得它的实数部分和虚数部分,例如:
分析(1.23e-4+5.67e+8j).real
1.23e-4意思是1.23乘以10的-4次幂 也就是0.000123
加上后面的5.67e+8j.real 是5.67乘以e的8j.real次幂,8j.real是复数的虚数部分为0,因此结果是0.0
最终答案就是0.000123
总结:复数类型在科学计算中十分常见,基于复数的运算属于数学的复变函数分支,该分支有效支撑了众多科学和工程问题的数学表示和求解。python直接支持复数类型,为这类运算求解提供了便利。
2.2内置的数值运算函数(共6个)
函数 | 描述 |
abs(x) | x的绝对值 |
divmod(x,y) | (x//y,x%y),输出为二元组形式(也称为元组类型),//为整除%为取余 |
pow(x,y[,z]) | pow(x,y),它与x**y相同,取x的y次方 |
round(x[,ndigits]) | 对x四舍五入,保留ndigits位小数 |
max(x1,x2,x3) | 返回其中最大值 |
min(x1,x2,x3) | 返回其中最小值 |
2.3内置的数字类型转换函数(共3个)
函数 | 描述 |
int(x) | 将x转 |
换为整数,x可以是浮点数或字符串float(x) | 返回浮点数x或者字符串x所对应的整数类型 |
complex(re[,im]) | 生成一个复数,实部为re,虚部为im,re可以是整数、浮点数或字符串,im可以是整数或浮点数但不能为字符串 |
2.4math库的数学常数
2.5math库的高等特殊函数
2.6math库的幂对数函数
2.7math库的三角运算函数
3.基本的字符串操作符
操作符 | 描述 |
x+y | 连接两个字符串x与y |
x*n | 复制n次字符串x |
x in s | 如果x是s的子串,返回True,否则返回false |
str[i] | 索引,返回第i个字符串 |
str[N:M] | 切片,返回索引第N到第M的字串,其中不包含M |
4.内置的字符串处理函数
函数 | 描述 |
len(x) | 返回字符串x的长度,也可以返回其他组合数据类型元素个数 |
str(x) | 返回任意类型x所对应的字符串形式 |
chr(x) | 返回Unicode编码x对应的单字符 |
ord(x) | 返回单字符串表示的Unicode编码 |
hex(x) | 返回整数x对应十六进制数的小写形式字符串 |
oct(x) | 返回整数x对应八进制数的小写形式字符串 |
5.常用的内置字符串处理方法
5.1 程序的循环结构:
continue和break的区别:
continue语句只结束本次循环,break则是结束整个循环过程
5.2random库的常用函数
函数 | 描述 |
seed(a=None) | 初始化随机数种子,默认为当期系统时间 |
random | 生成一个[0.0,1.0)之间的随机小数 |
randint(a,b) | 生成一个[a,b]之间的整数 |
getrandbits(k) | 生成一个k比特长度的随机数 |
randrange(start,stop[,step]) | 生成一个[start,stop)之间以step为步数的随机整数 |
uniform(a,b) | 生成一个[a,b]之间的随机小数 |
choice(seq) | 从序列类型,例如列表中随机返回一个元素 |
shuffle(seq) | 将序列类型中的元素随机排列,返回打乱后的序列 |
sample(pop,k) | 从pop类型中随机选取k个元素,以列表类型返回 |
5.3程序的异常处理
try:
...
except:
...
5.3.1异常处理的高级用法
支持多个except语句,语法格式如下:
try:
...
except<异常类型1>:
...
except<异常类型N>:
...
except:
...
还可以和else和finally保留字配合使用,语法格式如下:
try:
...1
except<异常类型1>:
...2
else:
...3
finally:
...4
#没异常则执行1;任何情况都会执行4;1没问题且2有问题则执行3
6.datetime库概述
from datetime import datetime
datetime.now
返回一个datetime类型,表示当前的日期和时间,精确到微妙
datetime.utcnow()
返回一个datetime类型,表示当前日期和时间对应的UTC(世界标准时间)
也可以直接使用datetime构造一个日期和时间对象:
datetime(year,month,day,hour=0,minute=0,second=0,microsecond=0)
例如:
datetime(2019,11,2,22,33,34,7)
表示2019年11月2日22:33(34秒,7微妙)
6.1datetime类常用属性
7.python内置函数
all() 函数一般针对组合数据类型,如果其中每个元素都是True,则返回True,否则返回false(0,空"",空列表[]等都被当做false)。
any() any与all相反,any中只要任意一个值为True则返回True
hash() 函数对于能够计算哈希的类型返回哈希值。
id() 函数对于每一个数据返回唯一的编号,数据不同编号不同,可以通过对比两个变量编号是否相同,判断数据是否一致。
reversed() 函数返回输入组合数据类型的逆序形式
ls=[1,2,3,5]
list(reversed(ls))
sorted() 函数对一个序列进行排序,默认从小到大
8.组合数据类型
8.1序列类型
a=1,2,3,4,5
b="cat","dog","tiger"
序列类型的通用操作符和函数
操作符 | 描述 |
x in s | 如果x是s的元素,返回True,否则返回false |
x not in s | 如果x不是s的元素,返回True,否则返回false |
s + t | 链接s和t |
s * n | 将序列s复制n次 |
s[i] | 索引,返回序列的第i个元素 |
s[i:j] | 分片,返回包含序列s第i到j个元素的子序列 |
s[i:j:k] | 步骤分片,返回包含序列s第i到j个元素以k为步数的子序列 |
len(s) | 返回s的长度 |
min(s) | 序列s中的最小元素 |
max(s) | 序列s中的最大元素 |
s.index(x[,i[,j]]) | 序列s中从i开始到j位置中第一次出现元素x的位置 |
s.count(x) | 序列s中出现x的总次数 |
元组是序列类型中比较特殊的类型,应为它一旦被创建就不能被修改
>>> creature="cat","dog","tiger"
>>> include=("aaa","bbb",creature)
>>> include
('aaa', 'bbb', ('cat', 'dog', 'tiger'))
>>> include[0]
'aaa'
>>> include[0][0]
'a'
>>> include[-1]
('cat', 'dog', 'tiger')
>>> include[-1][0]
'cat'
>>> include[-1][0][0]
'c'
8.2集合类型
集合不存在顺序,用{}表示
>>> s={1,10,"apple","cat",11,17}
>>> s
{1, 10, 11, 17, 'cat', 'apple'}
set(),set函数可以用于生成集合,输入的参数可以是任何组合数据类型,返回结果是一个无重复且任意排列的集合:
>>> set("apple")
{'p', 'l', 'a', 'e'}
集合类型的操作符
集合类型的操作函数或方法
8.3列表类型
>>> a=[1,2,3,4,"cat","dog"]
>>> a
[1, 2, 3, 4, 'cat', 'dog']
>>> p="中国是一个伟大的国家!"
>>> list(p)
['中', '国', '是', '一', '个', '伟', '大', '的', '国', '家', '!']
列表类型特有的函数或方法
9.字典类型
>>> a={"1+1":2,"2+2":4,"中国":"北京"}
>>> a
{'1+1': 2, '2+2': 4, '中国': '北京'}
>>> a["1+1"]
2
字典中还可以这样添加元素:
>>> d={}
>>> d["中国"]="北京"
>>> d
{'中国': '北京'}
>>> d["2^10"]=1024
>>> d
{'中国': '北京', '2^10': 1024}
字典类型的函数和方法
9.1jieba库的使用
jieba库文章分开写了,如有需要请点击转跳链接:
10.文件和数据格式化
文件的打开模式
文件的打开模式 | 含义 |
r | 只读模式,如果文件不存在则返回异常FileNotFoundError(默认值) |
w | 覆盖写模式,文件不存在则创建,存在则完全覆盖 |
x | 创建写模式,文件不存在则创建,存在则返回异常FileExistsError |
a | 追加写模式,文件不存在则创建,存在则在文件最后追加内容 |
b | 二进制文件模式 |
t | 文本文件模式(默认值) |
+ | 与r/w/x/a一同使用,在原则功能基础上增加同时读写功能 |
文件的读写
操作方法 | 含义 |
<file>.readall() | 读取整个文件内容,返回一个字符串或字节流* |
<file>.read(size=-1) | 从文件中读入整个文件内容,如果给出参数,读入前size长度的字符串或字节流 |
<file>.readline(size=-1) | 从文件中读入一行内容,如果给出参数,读入该行前size长度的字符串或字节流 |
<file>.readlines(hint=-1) | 从文件中读入所有行,以每行为元素形成一个列表,如果给出参数,读入hint行 |
文件内容写入方法
方法 | 含义 |
<file>.write(s) | 向文件写入一个字符串或字节流 |
<file>.writelines(lines) | 将一个元素全为字符串的列表写入文件 |
<file>.seek(offset) | 改变当前文件操作指针的位置,offset的值:0——文件开头;1——当前位置;2——文件结尾 |
11.PIL库的使用
pip install pillow安装pillow库
PIL库Image类解析
from PIL import image
image类的图像读取和创建方法
方法 | 描述 |
Image.open(filename) | 根据参数加载图像文件 |
Image.new(mode,size,color) | 根据给定参数创建一个新的图像 |
Image.open(StringIO.StringIO(buffer)) | 从字符串中获取图像 |
Image.frombytes(mode,size,data) | 从根据像素点data创建图像 |
Image.verify() | 对图像文件完整性进行检查,返回异常 |
加载一个图像:
from PIL import image
im=image.open("D:\\1.jpg")
image类的常用属性
属性 | 描述 |
Image.format | 标识图像格式或来源,如果图像不是从文件读取,值为None |
Image.mode | 图像的色彩模式,L为灰度图像,RGB为真彩色图像,CMYK为出版图像 |
Image.size | 图像宽度和高度,单位是像素(px),返回值是二元元组(tuple) |
Image.palette | 调色板属性,返回一个ImagePalette类型 |
查看已读取的图像文件的属性:
print(im.format,im.size,im.mode)
Image类的序列图像操作方法
方法 | 描述 |
Image.seek(frame) | 跳转并返回图像中的指定帧 |
Image.tell() | 返回当前帧的序号 |
Image类的图像转换和保存方法
方法 | 描述 |
Image.save(filename,format) | 将图像保存为filename文件名,format是图片格式 |
Image.convert(mode) | 使用不同的参数,转换图像为新的模式 |
Image.thumbnail(size) | 创建图像的缩略图,size是缩略图尺寸的二元元组 |
Image类的图像旋转和缩放方法
方法 | 描述 |
Image.resize(size) | 按size大小调整图像,生成副本 |
Image.rotate(angle) | 按angle角度旋转图像,生成副本 |