python知识点
python的数据类型
分为三个大类,number数值类型,字符串类型,组合类型,而数组类型分为整数型int 浮点数float 虚数(复数),bool布尔类型,字符串类型有string和字节类型,组合类型分为列表list, 元组tuple 集合set dictionary字典
其中不可变数据类型有number数值类型,字符串类型,元组tuple
python 的字符串方法
1.capitalize()格式化字符串,将首字母转为大写。
2.count()统计字符或字符串出现的次数
3.endswith()判断字符串是否以XXX结尾
4.startswith()判断字符串是否以XXX开头
5.index()查询字符串和字符下标。
6.format()格式化字符串
7.lower()将字符串转为小写
8.upper()将字符串转为大写
9.split()将字符串分割,返回列表
10.join()拼接迭代对象
11.replace(old,new)替换字符串
12.strip()清除两侧空格
等等
python的装饰器
装饰器:指定义一个函数,该函数用来为其他函数添加额外的功能,拓展原来函数的功能,符合我们的开闭原则。
pyhton的浅拷贝和深拷贝
引入copy模块
copy.copy()浅拷贝,只拷贝原数据的首地址,通过原数据首地址,去获取内容;浅拷贝去改变拷贝后的内容,会影响原数据内容,耗时短,占用空间小。
copy.deepcopy()深拷贝,自己新开辟了一块内存,将拷贝的内容全部拷贝过来。
深拷贝,改变拷贝后的内容,不影响原数据内容,但是时间长,占用空间大。
*arg和**kwargs
都是可变参数。
*arg表示任何多个无名参数,本质上是tuple。
**kwargs表示关键字参数,本质上是一个字典。
python多线程和多进程
线程必须在某个进程中执行。
一个进程可包含多个线程,其中有且只有一个主线程。
CPU是多核时是支持多个线程同时执行。但在Python中,无论是单核还是多核,同时只能由一个线程在执行。其根源是GIL的存在。GIL的全称是Global Interpreter Lock(全局解释器锁),来源是Python设计之初的考虑,为了数据安全所做的决定。某个线程想要执行,必须先拿到GIL,我们可以把GIL看作是“通行证”,并且在一个Python进程中,GIL只有一个。拿不到通行证的线程,就不允许进入CPU执行。
Python提供两个模块进行多线程的操作,分别是thread
和threading
-
方法1:直接使用
threading.Thread()
-
方法2:继承
threading.Thread
来自定义线程类,重写run
方法
Python要进行多进程操作,需要用到muiltprocessing
库,其中的Process
类跟threading
模块的Thread
类很相似。所以直接看代码熟悉多进程。
方法1:直接使用Process
方法2:继承Process
来自定义进程类,重写run
方法
python2和python3的区别
1、不等于<>比较运算符,python3不识别,pyhon2.7中!=和<>都能运行。
2、print函数的使用,python3必须加括号,python2加不加都行。
3、python2 的默认编码是ASCII,python3的默认编码是UTF-8。
4、python3字符串解码后会在内存里自动转换成Unicode,而python2不会。如果在文件头指定了解码编码,python2和python3都会按指定解码,所有系统都支持Unicode,所以python3只要指定对了解码编码,在哪个系统上都可以正常显示,python2如果不是gbk编码的,解码后windous就会是乱码。
5、python2中有Unicode数据类型,python3中没有,字符串都是Unicode格式的str数据类型。
6、用户输入不同,python3中只有input()输出都是str和python2中的raw_input()一样,而python2中也有input(),输入字符串要带引号,数字输出相应的数字类型
7、python2以前没有布尔型,0表示False,用1表示True;Python3 把 True 和 False 定义成关键字,它们的值还是 1 和 0,可以和数字运算。
8、python2的除法中不是浮点数则只返回商,python3除法返回值正常。
9、python3运行程序可以识别相同目录下普通文件夹中的模块,python2只能识别文件夹标识后的包中的模块。
10、创建类时,python2分为经典类和新式类,新式类就是继承object的类,经典类是没有继承的类,而python3中全部是新式类,默认继承object。在属性查找时,经典类查找方式为深度优先,新式类是广度优先。仅python3中有类的mro函数方法,输出继承父类的顺序列表。
以上都是在前辈们的基础上,学习收集出来的,如有侵权请联系我。