python常见面试考点

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提供两个模块进行多线程的操作,分别是threadthreading

  • 方法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函数方法,输出继承父类的顺序列表。

以上都是在前辈们的基础上,学习收集出来的,如有侵权请联系我。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值