分享

python面试题总结

desehawk 发表于 2015-4-7 20:09:43 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 30409
文化
说说你对zen of python的理解,你有什么办法看到它:

import this
你在github上都fork过哪些python库,列举一下你经常使用的,每个库用一句话描述下其功能

说说你对pythonic的看法,尝试解决下面的小问题:

交换两个变量值
a,b = b,a

去掉list中的重复元素
old_list = [1,1,1,3,4]
new_list = list(set(old_list))

翻转一个字符串
s = 'abcde'
ss = s[::-1]

用两个元素之间有对应关系的list构造一个dict
names = ['jianpx', 'yue']
ages = [23, 40]
m = dict(zip(names,ages))

将数量较多的字符串相连,如何效率较高,为什么
fruits = ['apple', 'banana']
result = ''.join(fruits)
python字符串效率问题之一就是在连接字符串的时候使用‘+’号,例如 s = ‘s1’ + ‘s2’ + ‘s3’ + ...+’sN’,总共将N个字符串连接起来, 但是使用+号的话,python需要申请N-1次内存空间, 然后进行字符串拷贝。原因是字符串对象PyStringObject在python当中是不可变 对象,所以每当需要合并两个字符串的时候,就要重新申请一个新的内存空间 (大小为两个字符串长度之和)来给这个合并之后的新字符串,然后进行拷贝。 所以用+号效率非常低。建议在连接字符串的时候使用字符串本身的方法 join(list),这个方法能提高效率,原因是它只是申请了一次内存空间, 因为它可以遍历list中的元素计算出总共需要申请的内存空间的大小,一次申请完。

你调试python代码的方法有哪些

基础
什么是GIL

什么是元类(meta_class)

对比一下dict中 items 与 iteritems

高级
是否遇到过python的模块间循环引用的问题,如何避免它

有用过with statement吗?它的好处是什么?

说说decorator的用法和它的应用场景,如果可以的话,写一个decorator

inspect模块有什么用

写一个类,并让它尽可能多的支持操作符

说一说你见过比较cool的python实现

已有(3)人评论

跳转到指定楼层
kingsman 发表于 2017-2-3 15:31:10
python很热门。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条