Python知识复习大纲
-
语法基础
-
行具缩块(查)
-
2. 数据类型
-
字符串
-
列表
-
元组
-
字典
-
集合
3. 各个数据类型的格式,以及应用
-
字符串
-
格式'str' "str"
-
处理方法(函数如何增删改查)
-
str.find()--查--只能查一次且为第一的字符,成功返回位置失败返回-1
-
str.format()--增--按照顺序替换{}中的内容?
-
str.strip()--删--特殊的lstrip或rstrip
-
str.replace(old,new)--改-- 新换旧没毛病
-
str[1,2]=''注意最后end取不到
-
截取方法
-
str[v]或str[start,end],例如str[2]
-
列表
-
格式 [,,]
-
处理方法(最好用函数)
-
改--list[1,3]=[v1,v2],列表表达式[exprssion for in if](对于整个列表或字符串进行数学转换)如[i**2-1 for i in list1 if i%2==0]
-
增--list.append()尾部增加,
-
删-- del外部函数,用remove
-
查--利用索引与切片cha
3. 截取
-
元组(元组元素不可变切记)
-
格式(,,)
-
处理方法
-
查--索引或切片
-
删-- del
3. 截取方式同上
-
字典(元素是键值对)
-
格式 { k:v,k1:v1}
-
处理方法
-
增--dict1[k1]=v1
-
删--
-
改--dict1[k]=v1替换
-
查--
4. 运算符
-
数字运算符(+-*/ %// ** += -= *=)
-
转义字符
-
逻辑运算符(& | !^)
-
比较运算符 (== <= >= > < != )
5.控制流语句
-
if语句
-
注意分支判断
if condition:
exp
elif condition:
exp
..........
else:
exp
-
for x(形参)in 容器:
exp
-
while condition:
exp
-
关于迭代循环for与条件循环while的具体差别借鉴:https://www.cnblogs.com/pengzhuopeng/p/9194993.html
-
注意在python中关键字所组成的语句中一定要加:重要的事情说三遍
6.正则表达式
-
定义:用于描述与刻画特定字符串的表达式 ,一般形式为'str',主要用于对长度非常长的字符串进行操作或者匹配的字符串具有重复性(注意re函数返回的都是列表)
-
形式: inport re
re.func(pattern,string,)
-
在什么时候使用正则表达式
-
字符串太长无法[]截取子串 re.findall(pattern,string)
-
无法利用replace进行替换 re.replace(pattern,repl,string)
-
split无法按照多种值进行分割 re.split(pattern,string,maxsplit=0)
注意:re模块中函数的参数必有正则表达式(匹配项),以及被被匹配的string
-
正则字符(9个:4个(设置前一个字符匹配次数):{}+*?;
5个(符号):
-
原字符,[](字符集合),
-
. (代表任意字符除了\n),
-
转义字符(\d (0~9)任意一个数,\s 代表任意一个空格,\w== [a-z A-Z 0-9 _ ] ,
-
\后面的代指取这个数本身(\.代表.字符本身),
-
'str()..',表示你已经匹配到了正则表达式pattern但还不够需要接着匹配()里的内容)
7.自定义函数与匿名函数(仔细核对)
-
匿名函数(lambda)
-
定义:这是一个无函数名称的函数,他的特点是能够“一气呵成”的完成一条函数的编写,缺点是复杂的函数无法表达
-
样式:lambda (parameter): exp return(){是否有小括号,以及return返回}
-
自定义函数
-
定义:从函数名--形参的名--exp都是自己定义的函数
-
样式:def function_name (prarmeter):
exp
.......
return()
8.网络爬虫的方法(简单的方法)
1.三步
step1: 发送请求response=requests.get(url),并获得相应[200]。并且进行文本化response.text
step2:获取数据第一种正则表达式re.findall("特征",response.text)
或者用美丽汤(1.汤化 soup = bs4.BeautifulSoup(response.text)2.)
step3: 利用列表表达式将数据一列表形式取出来[i.text for i in soup]
9.numpy
1. 数组的构造及其优势;
-
原因
由于列表只是数据容器无法直接进行任何计算([]*[]错),所以我们导入了数组。数组不但可以计算并且比列表利用for循环提取计算要快的多(%%time这个语句可以记录运行时间)
-
构造
arr1=np.array([[],[],
[],[]])------二维数组
arr1
样式: array[[],[],[],[]] -----数组(array列表)
-
用法
import numpy as np
arr1=np.array([ ])
arr2=np.array([ ])
result=arr1*arr2**2
2.数组元素的返回(索引)
-
一维数组
arr1[0], arr1[1:3], arr1[:3]---与序列一样
特别的 arr1[3,5,8](间断截取),arr1[arr1<18](逻辑索取)
-
二维数组
arr1=[[],[],[],
[],[],[],]
-
arr1[x,y](提取其中一个元素)
-
arr1[x]或者arr1[x,:](提取x一行)
-
arr1[:,y](提取y列)
3. 常用的数学函数与统计函数;
-
数字运算符(+ - * / **%//)逻辑运算符 (==,<,>,<=,>=,!=)
-
函数 函数说明
np.round(arr) 对各元素四舍五入------arr.round() just for float
np.sqrt(arr) 计算各元素的算术平方根----arr.sqrt()不行sqrt=square root)
np.square(arr) 计算各元素的平方值
np.exp(arr) 计算以e为底的指数 ----输入e时需要from math import e
np.power(arr, α) 计算各元素的指数---
np.log2(arr) 计算以2为底各元素的对数
np.log10(arr) 计算以10为底各元素的对数
np.log(arr) 计算以e为底各元素的对数
-
统计函数
函数 函数说明(axis=0,方向垂直计算每一列的数据。=1水平方向计算每一行的数据)
np.min(arr,axis) 按照轴的方向计算最小值--若不加axis则默认取整个数组的最小值
np.max(arr,axis) 按照轴的方向计算最大值
np.mean(arr,axis) 按照轴的方向计算平均值
np.median(arr,axis) 按照轴的方向计算中位数
np.sum(arr,axis) 按照轴的方向计算和
np.std(arr,axis) 按照轴的方向计算标准差
np.var(arr,axis) 按照轴的方向计算方差
-
随机生成函数
# 随机整数
np.random.randint(low,high,size) 注意取值[low,high)
# 随机均匀分布
np.random.uniform()
# 随机正态分布
np.random.normal()
暂时学习到这里,各位同僚欧里给