Python学习笔记(不完整)

数据类型:int、float、bool、str

查看类型:type(数据)

格式化字符串:

方式一: %s、%d、%f。

方式二:.f"字符串{表达式}字符串"

字符串函数:str.find(str,index_start,index_end)

str.replace(str,替代字符串,替换次数)

in方法 判断某个字符串是否是另个一字符串一部分

字符串分割 str.split("符号")

str1.join(list)方法,使用某个字符串作为拼接字符连接列表多个元素

字符串切片 str【】,str【index_start:index_end:step】,角标从0开始,结尾是-1

可以省略部分参数

str【::-1】字符串倒序

集合set,无序不重复

list,有序可重复

tuple,有序可重复不可变参数

dict:dict.keys(),dict.values() ,和java 的map映射类似,key不重复,无序,小数据量可能有序

extend 方法,可以将两个集合合并为一个

append 可以向集合添加一个元素

函数:函数定义

def func(形参列表):

代码体

调用:func(实参)

return 函数返回值:也可以打断函数执行

函数嵌套:函数一内部有函数二

函数递归:函数内部调用函数本身

局部变量全局变量:nonlocal,global,

变量的有效范围:函数内定义的变量,函数外无法调用,除非返回

函数外定义的全局变量,函数内默认无法调用无效,除非使用global,nonlocal关键字声明修改

参数类型:

位置参数:按对应位置传参

缺省参数:默认参数

不定长参数:字典型,元组型

元组型不定长args,传的参数自动封装为元组,使用时获取元组的值即可(只能放参数列表最后)

字典型不定长kwargs,传的参数自动封装为字典,使用时获取字典的值即可(只能放参数列表最后)

组包拆包:当多个变量=容器数据,自动将容器数据进行拆包,当容器=多个变量,自动变量进行组包为元组

a,b = b,a 先组包再拆包

return 返回多个值,在python中可以自动组装为元组返回,在别的语言中,一般不会允许多个返回值

字典拆包:for key,value in dict。items():

传入列表作为可变参数的值时,实参前加*,对于字典型的传参,加**

变量赋值本质:引用对象引用的内存地址

可变类型:在内存地址不变的情况下,改变存储的内容

不可变类型:在内存地址不变的情况下,不能改变存储的内容

range(start,end,step)获取一定范围内,指定类型的序列

列表推导式: 【i for i in range(10)】

lambda 表达式:在单行表达式或者一个函数调用的时候可用

lambda 参数1,参数2...  : 参数1,参数2的计算式或者调用函数处理参数1,参数2

enumerate :遍历容器元素的同时获取索引和元素值

del 根据下标删除

文件操作:

f=open(‘xxx.txt’,pattern,encoding=utf-8)

f.write()写入

f.read()读取多少字符,不设置则读取所有

f.readline()按行读取

f.readlines()读取所有行 返回值列表,元素为每一行内容

访问模式:

r  读

w 写

a 追加

r+ 读写模式,不存在则报错

w+ 读写模式,文件存在会清空,文件不存在创建

a+ 读写模式,文件存在则追加,不存在则创建

rb二进制只读

wb二进制只写

ab二进制追加

读模式不能写入

编码问题:gbk(汉字一般2字节),utf-8(汉字一般3字节)

os模块

os.rename(a,b) 文件改名

os.remove(a) 文件删除,不能删除文件夹

os.mkdir() 新建目录

os.getcwd()获取结对路径

os.chdir() 改变工作路径

os.listdir()获取目录下文件列表

os.path.exists()判断目录是否存在

eval 根据字符串自动推断其容器类型:(去除两端的引号,得到的是什么类型,就是什么类型)

str 将容器或者对象转换为字符串(两端加上引号)

面向对象:

是一种编程思维,是面向过程编程的一种思维上的升级,实现一个功能前,抽象解决问题涉及的对象,抽象为类,封装属性和方法,站在对象配合的角度去完成要实现的功能

类:具有相同属性的方法,称为一类

对象:类的实例,类的具现,一个具体的例子

类相当于图纸,对象相当于建造的实物

定义类:

class ClassA(object或者要继承的类名):

        方法体或者变量

classa =ClassA() 类的实例化 classa就是对象,可以调用类的方法和属性

self 哪个对象调用,它就是指哪个对象本身

魔法方法:__init__ ():初始化方法

__str__:返回值一个字符串:print 对象的时候打印其返回值

__del__ 在对象的生命周期结束时,会被调用,做一些清理操作

封装:将属性和方法封装为一个整体,然后通过实例化对象来处理

继承:类的属性和方法可以被继承或者重新写,优先调用子类的

继承多个类的同名方法,调用顺序按照继承顺序链来,通过类的__mro__属性查看

多态:相同对象,传入不同参数,进行调用会有不同的表现结果

super().方法名,调用父类的方法

类方法:@classmethod 修饰 可以被类调用或者对象调用,

实例方法:只能被对象调用,不能被类调用

静态方法:@staticmethod修饰,静态方法不涉及到类的属性和方法或者对象的,只是逻辑上存在于类中的

异常处理:

try:

        代码块

except exception as e:

        处理异常的代码print (e)

else :

        没发生异常时执行的代码块

finally:

        无论异常是否发生都会处理的代码,比如资源的释放或者文件句柄的释放

异常处理的外抛机制:当内存的代码异常没被处理,会在外层抛出

__name__指的是调用的类的程序名

__name__==__main__:,除非主动执行程序,否则为false

__all__ 返回 from * import * 时可被导入的模块名

__init__.py文件,在模块或包导入时,做些初始化的工作

正则表达式

. 匹配除换行符以外的

[]匹配括号中的任意一个

\d 匹配数字

\s 匹配空白

\w匹配非特殊字符 a-zA-Z0-9_汉字

{m,n}前一个字符m到n次

^ 匹配字符串开头

$匹配结尾

|匹配左右任意一个

()分组

(?P<name>)分组起别名

\n 引用分组

(?P=name)引用别名分组

re.match 匹配开头,返回match对象,可以用group获取

re.search 不一定从开始匹配,返回match对象

re.findall 查询所有满足条件的,返回列表

re.split ()正则分割

re.sub (pattern1,pattern2,str,count)正则替换

re.I 不区分大小写

re.S 使.能匹配包括换行在内的所有字符

re.M 影响^ ,$的行开始回合行结束效果(不起效)

贪婪模式:默认贪婪模式,匹配尽可能长的字符串,

在匹配字符串后加?可以让其非贪婪模式,匹配尽可能短的字符串

JSON解析:

jsonpath:

$ 根元素

@ 当前元素

.or [] 子元素

.. 不管位置,选择符合条件的

* 匹配所有元素节点

?() 支持过滤操作

() 支持表达式计算

例子:

 jsonpath模块

jsonpath.jsonpath(json_str,pattern)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦㐅触及轮回

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值