Python面试题

时间:2021-10-23 17:27:04

1、Python装饰器

详情

2、设置多个Python项目使用不同版本的Python和第三方库

使用PyEnv

详情

3、PEP8

详情

4、参数传递

按引用传递

5、列表解析,字典解析

详情

6、列表和元组的区别

元组一旦被赋值,值不可以被改变,改变会报错;列表可以任意更改。

7、range()和xrange()

(1)range()返回整个list

(2)xrange()返回可迭代的xrange对象

(3)xrange占用更少的内存空间,因为循环时xrange只生成当前对象

8、with语句

详情

9、重复import模块或方法

Python中一个模块不会重复载入

10、GIL

多线程下的全局互斥锁,保证同一时间每个进程中只有一个线程获得锁,访问相关资源。

11、特殊方法

(1)定义在某些class中

(2)不需要直接调用

(3)某些函数或操作符会调用相应的特殊方法

12、一级对象

无使用限制。

函数本身是一级对象。

13、class Foo 和 class Foo(object)

前一个是经典类,后一个是新式类

详情

14、提取列表中的每三个项目

x为列表,以下只有两种方式,希望有人指点还有其它的方式么

def t1(x):
l = len(x)
d = l // 3
r = l % 3
for i in range(d):
n = 3 * i
print('%d, %d, %d' % (x[n], x[n + 1], x[n + 2]))
for i in range(r):
n = 3 * d
print('%d, ' % x[n + i])
def t2(x):
n = 0
for i in x:
print('%d, ' % i, end='')
n = (n + 1) % 3
if not n :
print()