因为Python编程语言被越来越广泛的应用,企业对于python开发工程师的招聘也越来越多,而再进入职场的第一道坎上,很多Python工程师屡屡碰壁,需要很长时间才能找到合适的工作。虽然有一部分是因为技术能力确实无法满足企业需求,而更多的人技术能力很强仅仅是因为面试过程中没有良好的发挥。所以作为Python开发工程师,不仅仅要掌握知识,同时也要多了解一些面试题。这样在遇到跳槽的时候才能更快的找到满意的工作。下面就是python开发工程师面试中常见的知识点集锦。
问题一:对不定长参数的理解?
答:不定长参数有两种:*args 和**kwargs。
当我们不确定传入的参数的个数或者想传入元组时,可以用*args。当我们想传入关键字参数或者字典时可以使用**kwargs。
问题二:对缺省参数的理解?
答:缺省参数指在调用函数的时候没有传入参数的情况下,调用默认的参数,传入参数的时候,所传入的参数会替代默认参数。
问题三:什么是 lambda 函数?它有什么好处?写一个匿名函数求两个数的和。
答:lambda 函数是匿名函数;使用 lambda 函数能创建小型匿名函数。这函数得名于省略了用 def 声明函数的标准步骤;
f = lambda x,y:x+y print(f(2017,2018))
问题四:深拷贝和浅拷贝的区别?
答:(1)浅拷贝是将对象顶层拷贝,拷贝了引用,并没有拷贝内容,原对象改变新对象也跟着改变。
(2)深拷贝是对一个对象的所有层次的拷贝(递归),但是修改原来的值,新对象不受影响。(3)浅拷贝对于可变类型和不可变类型是不同的,对于可变类型只拷贝顶层,不可变类型依然是原来的对象。
问题五:什么是可变、不可变?元组里添加字典,会改变 id 吗?
答:(1)可变不可变指的是内存中的值是否可以被改变,不可变类型指的是对象所在内存块里面的值不可以改变,有数值、字符串、元组;可变类型则是可以改变,主要有列表、字典。
(2)元组的顶层元素中包含可变类型,在可变类型中修改或添加字典id 不会改变。
问题六:生成器、迭代器的区别?
答:(1)在 Python 中,一边循环一边计算的机制,称为生成器:generator,生成器是可以迭代对象,但是生成器可以通过 send 传值返回到前面。
(2)迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
(3) 迭代器是一个可以记住遍历的位置的对象。
这里和大家分享了六个python开发工程师面试的时候常见的问题。后续会不断的和大家分享相关面试题,欢迎大家持续关注。同时黑马视频库平台有大量的免费的视频课程