52道常见python面试题,你试一试? (7)

(1) a=[1, 2, 3, 4, 5], a[::2]=?, a[-2:] = ?
(2)一行代码实现对列表a中的偶数位置的元素进行加3后求和?
(3)将列表a的元素顺序打乱,再对a进行排序得到列表b,然后把a和b按元素顺序构造一个字典d。

Q.46.请问下面的代码有什么隐患?

def strtest1(num):
str = ‘first’
for i in range(num):
str += ’X’
return str

由于变量str是个不可变对象,每次迭代,python都会生成新的str对象来存储新的字符串,num越大,创建的str对象越多,内存消耗越大。

Q.47.单引号,双引号,三引号的区别

单引号和双引号是等效的,如果要换行,需要符号(),三引号则可以直接换行,并且可以包含注释

如果要表示Let’s go 这个字符串
单引号:s4= ‘Let’s go’
双引号:s5= “Let’s go”
s6 = ‘I realy like“python”!’
这就是单引号和双引号都可以表示字符串的原因了

Q.48.Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)

赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。

浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数}

深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}

Q.49.介绍一下Python下range()函数的用法?

列出一组数据,经常用在for in range()循环中

Q.50.请问如何修改以下Python代码,使得下面的代码调用类A的show方法?

52道常见python面试题,你试一试?

答:这道题的考点是类继承,只要通过__class__ 方法指定类对象就可以了。补充的代码如下:

52道常见python面试题,你试一试?

Q.51.请问如何修改以下Python代码,使得代码能够运行?

52道常见python面试题,你试一试?

此题考察得是方法对象,为了能让对象实例能被直接调用,需要实现 call 方法,补充代码如下:

52道常见python面试题,你试一试?

Q.52.一个包里有三个模块,mod1.py , mod2.py , mod3.py ,但使用 from demopack import * 导入模块时,如何保证只有 mod1 、 mod3 被导入了。

在包中增加 init.py 文件,并在文件中增加:all = [‘mod1’,’mod3’]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzsww.html