python面试题1

1.字符串的格式化方式

format

%s

2.元祖,列表 字典 集合定义方法,增加 删除,修改

参考 http://www.jcwit.com/?p=19

3.时间打印

strftime

4.re模块search()和match()区别

search和match都是只匹配一个 接收两个参数,(正则表达式,带匹配的字符串),search匹配符合条件的第一个,match根据所写的正则从头开始匹配。匹配开头 ,^开头的

5 lamba函数

匿名函数,可以和内置函数何用,减少冗余代码

6. initnew

init初始化方法 new为构造方法cls ,先执行new再执行init方法 del为析构方法,删除对象之前执行

7. 反射

用字符串变量或函数名 调用对应的函数和方法 getattr setattr hasattr

8. 深拷贝和浅拷贝

深拷贝 另外开辟新的内存空间存储拷贝所有层, 浅拷贝只是从新开辟孔家拷贝第一层。

  1. 列表推倒式
[pow(2,i) for i in rang(2,8) if i !=3 ]

10. random

random.random() random.ranint(1,5)

11. 新式类和经典类

.新式类 默认集成object ,寻找一个方法广度优先

经典类 寻找一个方法遵循深度优先,

12. 装饰器

加载方法前执行

def warpper(func):

	def inner(*args):

		print(’这里写装饰器要执行的内容 比如打印时间’)

		ret =func()

		return ret

	return inner

13. 并发和并行

并发 同一时间只能有一个cpu处理 如多线程

并行 同一时间多个cpu处理 如多进程

14 event事件原理

有一个状态控制wait方法是否阻塞

15.粘包 避免

tcp 面向连接的流传输 数据无边界

udp 基于数据包 没有粘包现象

如何避免: 自定义协议,struct 模块

16.进程

运行中的程序 最小的资源分配单位,为多个任务之间的数据安全和内存隔离做约束

17. 线程

cpu调度的最小单位,轻量级的进程,进程的一部分 依赖进程,可以共享进程中的数据

18.管道 队列

管道 双向通信的一个数据容器。多进程ipc用到 数据不安全

队列 先进先出 基于管道和锁实现的一个数据再线程和进程之间安全的容器

19. GIL概念,对多线程的影响

GIL全局解释器锁 属于cpython 用于在cpython解释一段多线程代码时 约束线程在同一时间只能有一个线程访问cpu,导致多线程并不能实现并行。

20. 单例

单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。

Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码。因此,我们只需把相关的函数和数据定义在一个模块中,就可以获得一个单例对象了

21. 异步

在同一时间可以做多件事。 多线程和多进程,

异步阻塞。自己io操作,不影响其他线程进程

22.线程锁

互斥锁 同一线程或进程之间,当有两个acquire时 会产生阻塞。死锁

递归锁 同一线程或进程 无论acquire多次都不会阻塞��锁 递归锁   同一线程或进程 无论acquire多次都不会阻塞


python面试题1
http://www.jcwit.com/article/100/
作者
Carlos
发布于
2018年6月18日
许可协议