当前位置:首页 > python > 正文

python初级开发面试题

  • python
  • 2024-05-17 23:37:25
  • 4177

∩^∩python面试必备题目有哪些
给你一份千峰Python的面试题
1使用多线程Python好不好?列出一些使Python代码并行运行的方法。
答:Python不允许真正的多线程。 它有一个多线程包,但是如果你想使用多线程来加速你的代码,那么使用它通常不是一个好主意。 Python有一个称为全局解释器锁(GIL)的结构。 GIL确保一次只能运行一个“线程”。 一个线程获取GIL,执行一些工作,然后将GIL传递给下一个线程。 这种情况发生得非常快,因此在人眼看来,线程似乎是并行运行的,但实际上它们只是轮流使用相同的CPU核心。 所有这些GIL通行证都会增加比赛记忆。 这意味着如果您希望代码运行得更快,那么使用线程包通常不是一个好主意。
使用Python的线程包也是有原因的。 如果您想同时运行几件事并且效率不是问题,那没问题。 或者,如果您正在运行需要等待某些内容(例如某些IO)的代码,那么这可能是有意义。 但线程库不允许你使用多个CPU核心。
多线程可以外包给操作系统(通过多处理)、一些调用Python代码的外部应用程序(例如Spark或Hadoop),或者一些由Python代码调用的代码,例如:您可以使用Python代码来调用C函数完成昂贵的多线程事务。
2.此代码输出什么:
deff(x,l=[]):foriinrange(x):l.append(i*i)print(l)f(2)f(3,[3,2,1])f(3)
答案:[0,1][3,2,1,0,1,4][0,1,0,1,4]
3.Python中如何管理内存?
Python中的内存管理是由Python私有堆空间来管理的。 所有Python对象和数据结构都放置在私有堆中。 程序员无权访问这个私有堆。 Python解释器负责处理这个问题。 Python对象的堆空间分配是由Python的内存管理器完成的。 核心API为程序员提供了更多编写代码的工具。 Python还有一个内置的垃圾收集器,可以回收所有未使用的内存并使其可用于堆空间。
4range和xrange有什么区别?
在大多数情况下,xrange和range在功能上是相同的。 它们都提供了一种生成整数列表的方法,唯一的区别是range返回一个Python列表对象,而xrange返回一个xrange对象。
这意味着xrange在运行时实际上并不生成静态列表。 它使用一种称为“yielding”的特殊技根据需要创建值。 该技术适用于称为生成器的对象。 因此,如果您有一个非常大的列表,请考虑xrange。
5Python中help()和dir()函数有什么用?
help()和dir()函数都可以直接从Python解释器访问,并用于查看内置函数的合并转储。
help()函数:help()函数用于显示文档字符串,还可以查看模块、关键字、属性等相关的使用信息。
dir()函数:dir()函数用于显示定义的符号。
6.NumPy中有哪些函数可以操作Python列表?
Python的列表是高效的通用容器。 它们支持(相当)高效的插入、删除、追加和串联,并且Python的列表理解使它们易于构造和操作。
它们有一定的局限性:它们不支持“向量化”操作,例如像素化加法和乘法,而且它们可以包含不同类型的对象,这意味着Python必须存储每个元素的类型信息,以及类型调度代码对每个元素进行操作时必须执行。
NumPy不仅更高效,而且更方便。 您可以免费获得许多向量和矩阵运算,这有时可以节省您不必要的工作。 它们也得到有效实施。
NumPy矩阵更快,您可以使用NumPy、FFT、卷积、快速搜索、基本统计、线性代数、直方图等内置功能。
这些内容相当重要。 如果对您有帮助,请采纳。