Python最常见的面试题解答

电子说

1.2w人已加入

描述

Python作为人工智能知识的基础知识,加上有许多公司都在招python方面的程序员,那么小编在这里整理了一些Python最常见的面试题。在python基础中,很明显我们需要了解python的特性,像面向对象思想,字符串的操作,推导式,实例化,多线程多进程以及初始化这些都是必须了解的。

 

  在python中,如何交换两个变量的值

 

这个问题,考了python特殊的语法,也就是a, b = b, a,这个表达式,也是其他语言所没有的,是只有python自带的。

 

  字符串的拼接–如何高效的拼接两个字符串

 

我们都知道python中,拼接字符串可以用”+”来拼接,然而这个方法并不是高效的,因为如果需要拼接的字符串有很多(n个)的情况下,使用”+”的话,python解释器会申请n-1次内存空间,然后进行拷贝,因为字符串在python中是不可变的,所以当进行拼接的时候,会需要申请一个新的内存空间。所以,正确答案是,使用.join(list),因为它只使用了一次内存空间。

 

  如何复制Python中的对象

 

要在Python中复制对象,一般情况下可以尝试copy.copy()或copy.deepcopy()。不能复制所有的对象,但大多数还是可以的。

 

  Python 中如何实现多线程

 

线程是轻量级的进程,多线程允许一次执行多个线程。众所周知,Python 是一种多线程语言,它有一个多线程包。

GIL(全局解释器锁)确保一次执行单个线程。一个线程保存 GIL 并在将其传递给下一个线程之前执行一些操作,这就产生了并行执行的错觉。但实际上,只是线程轮流在 CPU 上。当然,所有传递都会增加执行的开销。

 

  python中深浅拷贝的区别

 

浅拷贝没有拷贝子对象,所以原对象发生改变,其子对象也发生了改变,而深拷贝拷贝了子对象,原对象发生改变,其本身也不会改变。

 

  解释如何在Unix上创建一个Python脚本可执行文件

 

要在Unix上创建Python脚本可执行文件需要做两件事情:

Script文件的模式必须是可执行的

第一行必须以#(#!/ usr / local / bin / python)开头

 

  如何在 Python 中管理内存

 

Python 用一个私有堆内存空间来放置所有对象和数据结构,我们无法访问它。由解释器来管理它。不过使用一些核心 API,我们可以访问一些 Python 内存管理工具控制内存分配。

 

  类的初始化:new() 和 init()

 

new()方法用来实例化最终的类对象,在类创建之前被调用,它在类的主体被执行完后开始执行。

init()方法是在类被创建之后被调用,用来执行其他的一些输出化工作

当我们构造元类的时候,通常只需要定一个init()或new()方法,但不是两个都定义。但是,如果需要接受其他的关键词参数的话,这两个方法就要同时提供,并且都要提供对应的参数签名。

 

  简单说明在Python中如何使用split函数

 

在Python中使用split函数是使用定义的分隔符将字符串分解成更短的字符串。它给出了字符串中所有单词的列表。

 

  给定一串排好序的列表,打乱这个函数

 

这个题考了python里的shuffle函数的用法。

 

  给定一串字典(或列表),找出指定的(前N个)最大值?最小值

 

这道题的考点是python内的heapq模块的nlargest() 和 nsmallest(), 而不是min()和max()。这两个函数都能接收关键字参数,用于复杂的结构数据中:

 

   Python 区分大小写吗

 

验证 Python 是否区分大小写的方法是测试 myname 和 Myname 在程序中是不是算同一个标识符。观察以下代码的返回结果:

Myname

NameError: name  ‘Myname’ is not defined

如你所见,这里出现了 NameError,所以 Python 是区分大小的语言。

 

  实现一个斐波那契数列的生成器

 

这道题的考点关键是生成器的yield关键字将一个普通函数改造成生成器函数: 

python

 

  使用字符串拼接达到字幕滚动效果

 

python

 

  Python 中标识符的命名规则

 

Python 中的标识符可以是任意长度,但必须遵循以下命名规则:

1.  只能以下划线或者 A-Z/a-z 中的字母开头。

2.  其余部分只能使用 A-Z/a-z/0-9。

3.  Python 标识符区分大小写。

4.  关键字不能作为标识符。Python 有以下这些关键字:

python

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分