脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python常考基础面试题

Python常考基础面试题

2023-10-10 15:04袁袁袁袁满 Python

Python基础面试题 1、 Python 数据结构有哪些 整数(int) 浮点(float) 字符串(str) 布尔(bool) 列表(list) 元组(tuple) 字典(dict) 集合(set) 2、Python 中列表和元组的区别是什么?元组是不是真的不可变? 列表:list 是可变类

Python基础面试题

1、 Python 数据结构有哪些

  • 整数(int)
  • 浮点(float)
  • 字符串(str)
  • 布尔(bool)
  • 列表(list)
  • 元组(tuple)
  • 字典(dict)
  • 集合(set)

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

  • 列表:list 是可变类型、数据可以动态变化
  • 元组:是不可变类型,大小固定

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

迭代器
  • 作用:简化循环的代码并可以节约内存
  • 是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退
  • 迭代器有两个基本的方法:iter() 和 next()。
生成器
  • 作用:节约大量内存
  • 使用了 yield 的函数被称为生成器、生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器
  • 原理:在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行

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

  • 闭包是指Python中将组成函数的语言和这些语言的执行环境打包到一起所得到的对象
  • 装饰器是一种增加函数或类功能的简单方法,它可以快速给不同的函数或类插入相同的功能。语法:“@装饰器名”加在函数之前
  • 例:

    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、用过类吗?知道继承吗?请写一个例子,用到继承。

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

    Python常考基础面试题

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

    Python常考基础面试题

8、深拷贝和浅拷贝

  • 浅拷贝,改变原始对象中为可变类型的元素的值,会同时影响拷贝对象;改变原始对象中为不可变类型的元素的值,不会响拷贝对象。
  • 深拷贝,除了顶层拷贝,还对子元素也进行了拷贝。经过深拷贝后,原始对象和拷贝对象所有的可变元素地址都没有相同的了

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

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

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

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

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

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

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

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

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

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

python采用的是引用计数机制为主,标记-清除和分代收集(隔代回收、分代回收)两种机制为辅的策略

计数机制:Python的GC模块主要运用了引用计数来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”解决容器对象可能产生的循环引用的问题。通过分代回收以空间换取时间进一步提高垃圾回收的效率。

标记-清除::标记-清除的出现打破了循环引用,也就是它只关注那些可能会产生循环引用的对象

缺点:该机制所带来的额外操作和需要回收的内存块成正比。

隔代回收

原理:将系统中的所有内存块根据其存活时间划分为不同的集合,每一个集合就成为一个“代”,垃圾收集的频率随着“代”的存活时间的增大而减小。也就是说,活得越长的对象,就越不可能是垃圾,就应该减少对它的垃圾收集频率。那么如何来衡量这个存活时间:通常是利用几次垃圾收集动作来衡量,如果一个对象经过的垃圾收集次数越多,可以得出:该对象存活时间就越长。

到此这篇关于Python常考基础面试题的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/yuan2019035055/article/details/122310494

延伸 · 阅读

精彩推荐
  • Pythonpython基于pexpect库自动获取日志信息

    python基于pexpect库自动获取日志信息

    这篇文章主要介绍了python基于pexpect库自动获取日志信息的方法,帮助大家更好的利用python高效办公,感兴趣的朋友可以了解下...

    airpython11262021-09-01
  • PythonPyCharm中关于安装第三方包的三个建议

    PyCharm中关于安装第三方包的三个建议

    这篇文章主要介绍了PyCharm中关于安装第三方包的三个建议,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋...

    TyuansushiT7542020-09-17
  • PythonDjango如何实现内容缓存示例详解

    Django如何实现内容缓存示例详解

    缓存对于大家来说应该都不陌生,下面这篇文章主要给大家介绍了关于Django如何实现内容缓存的相关资料,文中通过示例代码介绍的非常详细,对大家的学...

    renpingsheng3762020-12-09
  • PythonPython中的rjust()方法使用详解

    Python中的rjust()方法使用详解

    这篇文章主要介绍了Python中的rjust()方法使用详解,是Python学习入门中的基础知识,需要的朋友可以参考下 ...

    脚本之家8042020-07-02
  • Pythonpython中logging模块的一些简单用法的使用

    python中logging模块的一些简单用法的使用

    这篇文章主要介绍了python中logging模块的一些简单用法的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    加班使我变丑智商下降6522021-06-01
  • Python利用Python实现数值积分的方法

    利用Python实现数值积分的方法

    这篇文章主要介绍了利用Python实现数值积分。本文主要用于对比使用Python来实现数学中积分的几种计算方式,并和真值进行对比,加深大家对积分运算实现...

    赵卓不凡5782022-09-16
  • Pythonpython 字典 按key值大小 倒序取值的实例

    python 字典 按key值大小 倒序取值的实例

    今天小编就为大家分享一篇python 字典 按key值大小 倒序取值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    loujingxian6862021-03-13
  • PythonPython实现合并同一个文件夹下所有txt文件的方法示例

    Python实现合并同一个文件夹下所有txt文件的方法示例

    这篇文章主要介绍了Python实现合并同一个文件夹下所有txt文件的方法,涉及Python针对文件的遍历、读取、写入等相关操作技巧,需要的朋友可以参考下...

    开心果汁13342021-02-05