Python 面试题汇总

Python 面试题集合

Python 语法

  • 描述一下 type 与 object 的关系。
  • 叙述以下 metaclass 的应用场景,给一个实现例子。
  • 描述以下 package 的打包过程以及常见的坑。
  • 协程优点和缺点是什么?
  • 类定义中使用了 __slot__属性能起到什么作用?
  • 什么叫弱引用?主要的用途是干什么?

算法题

  • 两个整数数组各100亿条数据,已经排序,保存在磁盘上;内存10M, 1.如何取得交集?时间和空间效率分别是多少? 2.如果其中一个数组只有100条数据,如何优化算法取得交集?时间和空间效率分别是多少? 3.用自己熟悉的语言实现第2个问题,要求可以正确运行;假设已经提供函数read_elt(arrary_name, index)可以用来读取某个数组的第index个元素,元素个数分别用m=100和n=10^10表示。

  • 100个磁盘组成的存储系统,有3个磁盘同时损坏,才会发生数据丢失。如果1个磁盘的损坏率是p,整个存储系统丢失数据的概率是多少?

  • 描述B-Tree插入值的过程

操作系统

  • 一个管道可以从a端发送字符到b端,只能发送0-9这10个数字,设计消息的协议,让a可以通知b任意大小的数字,并讨论这种消息协议可能发送的错误的处理能力。

  • 假设fd是一个socket,read(fd, buf, 1024)可能返回哪些值?代表什么含义?

  • 自旋锁适合哪些场合应用,不适合哪些场合?

  • 假设网络会丢失消息,进程可能意外终止,磁盘可靠(写入数据后不会丢失); 如何构建一个可靠的分布式key-value存储系统? 要求: 1.客户端向系统发送1条写入请求(例如key=x, value=1),系统返回’成功’,客户端一定可以正确读取到key=y的值 2.在你设计的系统中,要满足上面第1条,并有一定对故障的容错能力。 3.如果要尽可能提高写入成功率,如果改进系统设计?会有哪些问题? 4.如果要尽可能提高读写成功率,如果改进系统设计?会有哪些问题?

开放性问题

  • 谈一下 Python 的优势与劣势。
  • 谈一下你认为最好的 Pyhton based infrastructure 结构。

TODO

http://blog.csdn.net/haluoluo211/article/details/49666527

参考文献

2018年03月14日 / 09:00