Python常考基础面试题【文末送Python书籍两本】

77 阅读7分钟

Python基础面试题

=============================================================================

1、 Python 数据结构有哪些


  • 整数(int)

  • 浮点(float)

  • 字符串(str)

  • 布尔(bool)

  • 列表(list)

  • 元组(tuple)

  • 字典(dict)

  • 集合(set)

2、Python 中列表和元组的区别是什么?元组是不是真的不可变?


  • 列表:list 是可变类型、数据可以动态变化

  • 元组:是不可变类型,大小固定

3、什么是生成器和迭代器?它们之间有什么区别?


迭代器

  • 作用:简化循环的代码并可以节约内存

  • 是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退

  • 迭代器有两个基本的方法:iter() 和 next()。

生成器

  • 作用:节约大量内存

  • 使用了 yield 的函数被称为生成器、生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器

  • 原理:在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行

4、什么是闭包?装饰器又是什么?装饰器有什么作用?你用过装饰器吗?请写一个装饰器的例子


  • 闭包是指Python中将组成函数的语言和这些语言的执行环境打包到一起所得到的对象

  • 装饰器是一种增加函数或类功能的简单方法,它可以快速给不同的函数或类插入相同的功能。语法:“@装饰器名”加在函数之前

  • 例:

在这里插入图片描述

5、什么是匿名函数,用匿名函数有什么好处?


匿名函数:使用lambda创建的函数,所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

好处

  • 1、使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。

  • 2、对于一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。

  • 3、使用lambda在某些时候让代码更容易理解。

应用场景:经常与一些内置函数相结合使用,比如说map()、filter()、sorted()、reduce()

表达式格式lambda 参数列表: lambda体

案例

frame.applymap(lambda x: '%.2f' % x)

frame.apply(lambda x: x.max() - x.min())

6、如何提高 Python 的运行效率吗


  • 使用生成器优化内存

  • 循环的优化:多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率

  • 优化算法时间:算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)

7、用过类吗?知道继承吗?请写一个例子,用到继承。


  • 继承:指通过获取父对象的属性和能力,再加上自定义的属性和能力而成为一个对象的子对象或一个类的子类。

在这里插入图片描述

  • 重写:方法名取一样,方法重写

在这里插入图片描述

8、深拷贝和浅拷贝


  • 浅拷贝,改变原始对象中为可变类型的元素的值,会同时影响拷贝对象;改变原始对象中为不可变类型的元素的值,不会响拷贝对象。

  • 深拷贝,除了顶层拷贝,还对子元素也进行了拷贝。经过深拷贝后,原始对象和拷贝对象所有的可变元素地址都没有相同的了

9、列举8个常用模块都有那些?


os模块:提供了不少与操作系统相关联的函数.

sys模块:通用工具脚本经常调用命令行参数.

re模块:为高级字符串处理提供了正则表达式工具。对于复杂的匹配和处理,正则表达式提供了简洁、优化的解决方案:

random模块:提供了生成随机数的工具。

json模块:提供Python解析json数据的方法,和python格式相互转化的方法

time模块:python中用于处理时间的模块

logging模块:python中关于日志处理的模块

xml模块:python爬虫中用于定位html标签的模块

10、Python垃圾回收机制?(知道即可)


最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

了解详情:docs.qq.com/doc/DSnl3ZG…