1、注释
单行:# (注:在使用时和后面文字隔一个空格,以便规范)
多行:""" ***** """
2、变量
变量名 = 变量值
3、数据类型
使用type()查看数据类型
4、常见的语句转化
int(x)、float(x)、str(x)
5、字符串的格式化
%s:%是占位,s将变量变成字符串放入占位地方
%d:d是整数
%f:f是浮点数
快速写法,在输出语句前加上f,如:f"输出语句"
6、数据输入
使用input函数
7、在输出时,使用end = " "来保证不换行
8、for轮询
for 临时变量 in 待处理数据集:
处理代码
range语句:
range(num)获取一个从0开始,到num结束的数字序列,不含num本身
range(num1,num2)获取一个从num1开始,到num2结束的数字序列,不含num2本身
range(num1,num2,step)获取一个从num1开始,到num2结束的数字序列,不含num2本身,step是步长
9、函数
函数定义:
def 函数名(传入参数):
函数体
return 返回值
None:无返回值函数实际是返回了none的字面量,表示空的
10、使用global来在函数体中修改全局变量
11、5类数据容器
列表(list):[元素1,元素2,元素3]
定义空列表:变量名称 = [ ] 或 变量名称 = list()
元组(tuple):与列表相似,但不可修改;(元素1,元素2,元素3)
定义空元组:变量名称 = ()或 变量名称 = tuple()
注意:元组只有一个数据,元素后必须带一个逗号
字符串(str)
集合(set):{元素,元素,元素}
定义空集合:变量名称 = set()
字典(dict):{key:value,key:value,......,key:value}
定义空字典:变量名称 = {} 或 变量名称 = dict()
12、列表的方法
列表.index(元素):获取元素的下标
列表.insert(下标,插入元素):在指定下表位置插入值
列表.append (元素):将指定元素主追加到列表的尾部
列表.extend(其他数据容器):将其他容器的内容取出,依次追加到列表尾部
删除元素:del 列表[下标] :无返回值
列表.pop(下标):有返回值
列表.remove(元素):删除某元素在列表中的第一个匹配项
列表.clear():清空列表内容
列表.count(元素):统计某元素在列表内的数量
len(列表):统计列表内有多少元素
13、元组的方法
14、字符串的方法
字符串.replace(字符串1,字符串2):将字符串内的字符串1替换为字符串2
字符串.split(分隔符字符串):将字符串划分为多个字符串,并存入列表对象中
字符串.strip():字符串的规整操作(去前后空格)
字符串.strip(字符串):字符串的规整操作(去前后指定字符串)
15、序列
内容连续、有序、可使用下标索引的一类数据容器。
列表、元组、字符串均可视为序列
序列的切片:
语法:序列[起始下标:结束下标:步长]
16、集合的方法
17、字典的方法
18、数据容器的总结
19、数据容器通用方法
20、函数进阶
·可以同时返回多个返回值
·传参方式
位置参数
关键字参数
缺省参数:可以设置默认值
不定长参数:
位置:*变量参数名 元组接收
关键字:**变量参数名 字典接收
函数可做为参数传递
21、lambda匿名函数
语法:lambda 传入参数:函数体(一行代码)
22、文件操作
文件的读取操作:
文件的写入操作:w模式
write():写入内容
flush():刷新内容到硬盘中
文件的追加操作:a模式
方法与写入一致
23、捕获异常
语法:
try:
可能发生错误的代码
except:
如果出现异常执行的代码
捕获指定异常语法:
try:
可能发生错误的代码
except 异常类型 as 变量名:
如果出现异常执行的代码
捕获多个异常:
try:
可能发生错误的代码
except (异常类型1,异常类型2)as 变量名:
如果出现异常执行的代码
捕获所有异常:
try:
可能发生错误的代码
except Exception as 变量名:
如果出现异常执行的代码
在后面加上else表明没有异常时执行的代码
在后面加上finally表明无论异常必须执行的代码
24、异常的传递性,类似java中的往上抛出异常
25、模块
模块的导入:
语法:[from 模块名] import [模块|类|变量|函数|*] [as 别名]
自定义模块:
定义一个python文件,常见函数即可
__main__变量提供的功能在该模块内部才能运行,一般为__name__ == __main__
__all__变量表明只提供__all__变量中提供的函数或变量
26、包
实质上是文件夹,包含__init__.py的文件
安装第三方包:
pip install 包名称
pip install -i 国内镜像网址 包名称
27、python数据和json数据的相互转化
导入json模块,使用dumps方法转化为json数据,使用loads方法转化为python数据
28、列表的sort方法
使用方法:
列表.sort(key=选择排序依据的函数,reverse=True|False)
29、类
定义:
class 类名称:
类属性
类行为
创建对象语法:对象 = 类名称()
定义成员方法:
def 方法名(self,形参1,形参2,......,形参N):
方法体
30、类的构造方法
__init__方法
31、类的内置方法
__str__:控制类转化为字符串的行为
__it__:小于或大于符号的比较方法
__ie__:小于等于或大于等于符号的比较方法
__eq__:比较运算符实现方法
32、私有成员变量和私有成员方法
变量名或方法名使用__开头
33、类的继承
语法:
单继承:
class 类名(父类名):
类内容名
多继承:
class 类名(父类名1,父类名2,父类名3,......):
类内容名
pass关键字:占位,保证完整性
34、在被复写状态下,父类的调用
父类名.方法或属性
super().方法或属性
35、类型注解
变量设置类型注解:
语法:
变量:类型
类型注解语法:
#type:类型
函数形参注解:
注解语法:
def 函数方法名(形参名:类型,形参名:类型,......):
pass
返回值类型注解:
def 函数方法名(形参名:类型,形参名:类型,......)-> 返回值类型
pass
Union类型:
导入包 from typing import Union
使用Union[类型,......,类型]定义联合类型注解
36、创建MySql的数据库连接
37、pyspark库的使用
数据输入:
输入完成后得到一个RDD类对象。RDD全称是弹性分布式数据集
通过parallelize成员方法将数据容器对象转化为RDD对象,查看RDD里面有什么需要使用collect(),也可以通过textFile来讲文件转化为RDD对象
数据计算:
map方法:将RDD的数据一条条处理,返回新的RDD,方法参数是一个处理函数,且该函数必须带参数
flatMap方法:和map相比,执行了解除嵌套的功能
reduceByKey方法:针对KV型的RDD,根据聚合逻辑,完成组内数据的聚合操作
filter方法:过滤想要的数据进行保留
distinct方法:对RDD的数据进行去重操作,无需传递参数
sortBy方法:对RDD的数据进行排序,基于你指定的排序依据
语法:
rdd.sortBy(func,ascending=False,numPartitions=1)
数据输出:
reduce:对RDD数据集按照你传入的逻辑进行聚合,传入带参函数
take:取RDD的前N个元素,组合成list返回,传入数字参数
count:计算RDD有多少条数据,返回值是一个数字
输出到文件中:
saveAsTextFile:将RDD的数据写入文件中
(注:需要配置Hadoop依赖)
修改RDD分区:SparkConf对象设置conf.set(“spark.default.parallelism”,"1")
38、闭包
简单闭包
需要使用nonlocal关键字修饰外部函数的变量才可以在内部函数中修改它
39、装饰器
实质上是一种闭包,将函数作为参数对其进行功能增强
装饰器的语法糖,在需要增强的方法上使用注解@outer,可直接使用该方法名调用
40、设计模式
单例模式
工厂模式
41、多线程
使用threading模块完成多线程编程
42、网络编程
服务端编程步骤:
客户端网络编程:
43、正则表达式
使用re模块
三个基础方法:match、search、findall
re.match(匹配规则,被匹配字符串):开头匹配
re.search(匹配规则,被匹配字符串):从开头开始找到第一个
re.findall(匹配规则,被匹配字符串):匹配整个字符串,找出全部匹配项
注:在前面带上r表明转义字符无效
44、os模块的3个方法