一、python基础语法、基本数据类型、运算符、变量
1.python基础语法:
注释:
语句: 结束没有分号,一行有多条语句,语句换行(\)
标识符:由字母数字、下划线组成,不能以数字开头,不能是关键字
关键字: try False True if else 等
行与缩进:
2.基本数据类型:数字num(整型(int)、浮点型(float)、布尔(bool)、复数(complex)、字符串(Str)、列表(List)、元祖(Tuples)、字典(Dict)、集合(Sets)
int() ---> 转换成整型:整数、布尔、浮点数、字符串(+-加纯数字字符串 -->r'[+-]?\d+')
纯数字字符串可以直接转换成整型
浮点数(float):12.8、12e-2(科学计数法)
float() ---> 转换成浮点型:整数、布尔、浮点数、字符串r'[+-]?\d+.?\d+'
布尔布尔(bool):True(1)、False(0)
bool() ---> 所有的数据都可以转换成布尔
转换成Flase有:0、0.00、''、[]、{}、None
复数(complex): 19+2j
3.字符串
字符:Unicode编码字符
r'\n' R'\' -->阻止转义
chr(code):将编码转换成单个字符串
ord(字符):将字符转换成10进制的Unicode码
获取字符串中的一个或者部分字符:str1[index], str1[:]-->左闭右开区间
遍历字符串:
for 字符 in 字符串:
pass
for 下标 in range(len(字符串)):
pass
4.运算符(算术、赋值、比较、逻辑(and,or,not))
/+ - * / % // ---> 数字
/+ 、* ---> 字符串连接、字符串重复
/+ 、*、---> 列表合并、列表元素重复、
- ----> 集合
二、分之、循环、序列数据类型、函数
分之:if--elif--else if--if--else---elif--else
循环:for--in-- while--- break,continue
分之:if--elif--else if--if--else---elif--else
循环:for--in-- while--- break,continue
列表:[1,2,'23',True] list[index] list[::] 增、删、改、查;for item in list; while index<len(list)....
字典:{'a':23, 'b':'wer'} 增(dict[key]=新值)、删(del dict[key], dict.pop(key))、改、查(dict[key],dict.get(key))
values,keys,items
元祖:(1, 2),不可变的列表
集合:{2, 3},无序的、值唯一的;包含、交集、并集、差集、^(除了公共部分以外的)
def 函数名(参数列表):
函数体
参数可以有默认值、参数不定(*变量)
返回值:没有return,返回None;有的话就是return后的值。
作用域:定义在函数中的变量的作用域在函数里 (global,nonlocal)
匿名函数:func1 = lambda 参数列表:返回值
递归函数:函数中调用自己----> 确定临界值、找出f(n)和f(n-1)的关系,根据关系用f(n-1)去实现f(n)的功能
三、文件操作和类
open(地址,打开方法)
打开方式: w,r, a read() write()
文件.close()
with open() as f:
pass
json文件:json模块 --> load(),dump(
r+可读可写
w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
类:
class name(父类):
属性
方法
属性:对象、类字段;对象属性的增删改查,_ slots_ , ,
方法:对象、类
继承:除了私有的所有的属性和方法,slots不能继承
重写: init方法的重写需要保留父类功能
多态:继承的时候,父类的一个方法可以在不同的子类中有不同的实现
运算符重载:_ gt _ _ lt _ _ add _ _ sub _
正则表达
\d \w . \s \S
//* + [] ? {N} {M,N}, {M,}
re模块中的方法
match(fullmatch)、search ---> 结果都是匹配器
findall ---> 结果是列表,列表中是符合要求的子串sub ---> 返回替换后的字符串
split --> 列表
迭代器和生成器
1.创建迭代器(就可以看成一个特殊的容器)
可以将序列转换成迭代器
iter1 = iter('abcn') # a、b、c、n就是迭代器中的元素
2.通过next去获取迭代器中的元素,每次只能取一个,而且已经取过的元素就不能再获取到了
def func1():
print('aaa')
func1()
a = 100
print(iter1.__next__())
二、生成器和生成式:生成器就是创建迭代器的函数;生成式就是创建迭代器的表达式
生成式: (value for value in 序列)
iter2 = ((i*2,i) for i in 'ahnckdhs')
print(iter2.next())
print(iter2.next())
生成器:在函数中有关键字yield的函数就是生成器,函数的返回值就是一个迭代器(不管函数有没有返回值)
格式:yield 表达式 迭代器中的元素就是yield后面的值的集合
def func():
for i in range(10, 20):
yield i # 在函数执行的过程中,每遇到一次yield,就会将yield后面的值存到迭代器中