要使用Python作为更新的工作,您必须熟悉基础知识。在这里,我整理了一些基本的Python面试问题和答案以及一些高级Python问题和答案,以帮助您完成面试。有Python开发人员面试问题,Python编码面试问题,数据结构面试问题以及Python Scripting面试问题。深入研究Python编程面试问题。

2018年前35名Python面试问题和答案 1,Python面试问题 问题1。Python的主要功能是什么?

如果它是编程的入门语言,那么Python必须具有某种意义。这些是它的品质:

解读 动态类型 面向对象 简洁明了 自由 有一个庞大的社区 事实上,这还不是全部。Python是如此之多。

Q.2。区分深层和浅层副本。

深拷贝将对象复制到另一个对象中。这意味着如果您对对象的副本进行更改,则不会影响原始对象。在Python中,我们使用函数deepcopy()为此,我们导入模块副本。我们使用它像:

导入副本 b =复制。深度扫描(一) 2018年前35名Python面试问题和答案 深层复制 - Python面试问题与解答

但是,浅拷贝会将一个对象的引用复制到另一个对象。因此,如果我们在副本中进行更改,则会影响原始对象。为此,我们有函数copy()。我们使用它像:

b =复制。副本(一) 2018年前35名Python面试问题和答案 浅拷贝 - Python访谈问题和答案

Q.3。区分列表和元组。

主要区别在于列表是可变的,但元组是不可变的。例子:

MYLIST = [ 1 ,3 ,3 ] mylist [ 1 ] = 2 mytuple = (1 ,3 ,3 ) mytuple [ 1 ] = 2 回溯(最近的呼叫最后): 在中的文件“<pyshell#97>” ,第1 行 mytuple [ 1 ] = 2 TypeError:'tuple'对象不支持项目分配

有关更多信息,请参阅元组与列表。

2.新生的基本Python面试问题 Q.4到Q.20是新手的一些基本Python面试问题,但是经验也可以参考这些问题来修改基本概念。

Q.4。用Python解释三元运算符。

与C ++不同,我们没有?:在Python中,但我们有:

[on true] if [expression] else [on false]

如果表达式为True,则执行[on true]下的语句。否则,在[on false]下执行。

以下是如何使用它:

A,B = 2 ,3 min = a if a <b else b 分钟 2

print (“Hi” )如果<b else print (“Bye” ) 你好

Q.5。如何在Python中实现多线程?

线程是一个轻量级进程,多线程允许我们一次执行多个线程。如您所知,Python是一种多线程语言。它有一个多线程包。

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

问题6。解释继承。

当一个类继承自另一个类时,它被称为继承自parent / base / super类的子/派生/子类。它继承/获取所有成员(属性和方法)。

继承使我们可以重用我们的代码,并且还可以更轻松地创建和维护应用程序。Python支持以下类型的继承:

单一继承 - 类继承自单个基类。 多重继承 - 一个类继承自多个基类。 多级继承 - 类继承自基类,而基类继承自另一个基类。 分层继承 - 多个类从单个基类继承。 混合继承 - 混合继承是两种或更多种类型的继承的组合。 Q.7。什么是Flask?

正如我们之前讨论的那样,Flask是一个用于Python的Web微框架。它基于'Werkzeug,Jinja 2和良好意图'BSD许可证。它的两个依赖项是Werkzeug和Jinja2。这意味着它几乎不依赖于外部库。因此,我们可以称之为轻型框架。

会话使用签名cookie来允许用户查看和修改会话内容。它会记住从一个请求到另一个请求的信息。但是,要修改会话,用户必须具有密钥Flask.secret_key。

我们将在更进一步的课程中更详细地讨论Flask。

Q.8。如何在Python中管理内存?

Python有一个私有堆空间来容纳所有对象和数据结构。作为程序员,我们无法访问它; 它是管理它的解释器。但是使用核心API,我们可以访问一些工具。Python内存管理器控制分配。

此外,内置的垃圾收集器会回收所有未使用的内存,以便可以将其用于堆空间。

Q.9。在Python中解释help()和dir()函数。

help()函数显示文档字符串及其参数的帮助。

导入副本 帮助(copy.copy ) 有关模块复制中的功能复制的帮助:

副本(X)

对任意Python对象进行浅拷贝操作。

有关详细信息,请参阅模块的__doc__字符串。

dir()函数显示对象的所有成员(任何类型)。

目录(copy.copy ) [ 'annotations', 'call', 'class', 'closure', 'code', 'defaults', 'delattr', 'dict', 'DIR', 'doc', 'eq', 'format',' ge”, 'get', 'getattribute', 'globals', 'gt', 'hash', 'init', 'init_subclass', 'kwdefaults', 'le', 'lt', 'module', 'name' ,'__ ne ','_ new__','__ equalname ',' _ _ _ _ _ _ '',' _ _ _ _ _ _ ''''''''''''''''''''' _ _ _ _ _ _ _ _'''''''''''''''''

Q.10。每当你退出Python时,是否所有内存都被解除分配?

这里的答案是否定的。具有循环引用其他对象或从全局命名空间引用的对象的模块在退出Python时并不总是被释放。

另外,不可能取消分配C库保留的部分内存。

Q.11。什么是monkey补丁?

在运行时动态修改类或模块。

A类: def func (self ): 打印(“hi” )

def monkey (self ): 打印“hi,monkey”

mAfunc =monkey a = m。A () a。func () 嗨,猴子

Q.12。Python中的dictionary是什么?

dictionary是我在C ++或Java等其他语言中从未见过的。它拥有键值对。

根= { 25 :5 ,16 :4 ,9 :3 ,4 :2 ,1 :1 } 类型(根) < class'dict' >

根[ 9 ] 3

dictionary是可变的,我们也可以使用理解来创建它。

根= { X ** 2 :X为沿x 范围(5 ,0 , - 1 )} 根 {25:5,16:4,9:3,4:2,1:1}

Q.13。* args和** kwargs是什么意思?

如果我们不知道将多少个参数传递给函数,比如当我们想要传递一个列表或一个元组值时,我们使用* args。

def func (* args ): 因为我在args: 打印(i )

FUNC (3 ,2 ,1 ,4 ,7 ) 3

2

1

4

7

**当我们不知道将会有多少关键字参数时,它会获取关键字参数。

def func (** kwargs ): 对于我在kwargs: 打印(i,kwargs [ i ] )

func (a = 1 ,b = 2 ,c = 7 ) A.1

B.2

C.7

args和kwargs这两个词是惯例,我们可以使用任何东西代替它们。

在基础Python面试中有任何疑问问题和新生的答案?请在评论中提问。

Q.14。编写Python逻辑来计算文件中的大写字母数。

导入操作系统 os。chdir ('C:\ Users \ lifei \ Desktop' ) with open ('Today.txt' )as today: count = 0 因为今天我。read (): 如果我。isupper (): count + = 1 打印(count) 26

Q.15。什么是负面指数?

我们来看一个清单吧。

MYLIST = [ 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ] 与正面指数不同,负指数从右边开始搜索。

mylist [ - 3 ] 6

这也有助于从后面切片:

mylist [ - 6 : - 1 ] [3,4,5,6,7]

Q.16。你如何将列表的内容随机化?

为此,我们将从模块中随机导入函数shuffle()。

来自随机导入shuffle shuffle (mylist ) mylist [3,4,8,0,5,7,6,2,1]

Q.17。在Python中解释join()和split()。

join()允许我们通过我们指定的字符将字符串中的字符连接在一起。

',' 。加入('12345' ) '1,2,3,4,5'

split()允许我们在指定的字符周围分割一个字符串。

'1,2,3,4,5' 。分裂(',' ) ['1','2','3','4','5']

问题18。Python区分大小写吗?

如果区分myname和Myname之类的标识符,则语言区分大小写。换句话说,它关心大小写或大写。让我们用Python尝试一下。

myname = 'Ayushi' Myname Traceback(最近的呼叫最后): 在中的文件“<pyshell#3>” ,第1 行 我的名字

NameError:未定义名称“Myname”

如您所见,这引发了NameError。这意味着Python确实区分大小写。

Q.19。标识符在Python中可以使用多长时间?

在Python中,标识符可以是任意长度。除此之外,我们必须遵循一些规则来命名一个:

它只能以下划线或AZ或az中的字符开头。 其余部分可以包含以下内容:AZ / az / _ / 0-9。 正如我们在前一个问题中所讨论的那样,Python区分大小写。 关键字不能用作标识符。Python有以下关键字: 和高清假进口不真正如德尔最后在要么尝试断言ELIF对于是通过而打破其他从拉姆达打印同类除全球没有提高产量继续EXEC如果外地返回

Q.20。如何删除字符串中的前导空格?

字符串中的前导空格是第一个非空白字符前的字符串中的空格。要从字符串中删除它,我们使用方法lstrip()。

'Ayushi' 。lstrip () 'Ayushi'

如您所见,此字符串包含前导和尾随空格。lstrip()去掉了前导空格的字符串。如果我们想要去掉尾随空格,我们使用rstrip()。

'Ayushi' 。rstrip () 'Ayushi'

这些是基本的Python面试问题和新生的答案。

3.高级Python面试问题和经验丰富的答案 Q. 21至Q. 35是一些针对体验的高级Python面试问题及其答案和示例。

问题21。你如何将字符串转换为小写?

我们使用lower()方法。

'AyuShi' 。低() 'ayushi'

要将它转换为大写,那么我们使用upper()。

'AyuShi' 。上() 'AYUSHI'

另外,要检查字符串是全部大写还是全部小写,我们使用方法isupper()和islower()。

'AyuShi' 。isupper () 假

'AYUSHI' 。isupper () 真正

'ayushi' 。islower () 真正

'@ yu $ hi' 。islower () 真正

'@ YU $ HI' 。isupper () 真正

因此,像@和$这样的字符就足够了。

此外,istitle()将告诉我们字符串是否在标题中。

'尸体新娘' 。istitle () 真正

Q.22。Python中的pass语句是什么?

我们的代码中可能有时候还没有决定要做什么,但我们必须输入一些东西才能使它在语法上正确。在这种情况下,我们使用pass语句。

def func (* args ): 通过

类似地,break语句突然出现循环。

for i in range (7 ): 如果我== 3 :休息 打印(i ) 0

1

2

最后,continue语句跳到下一次迭代。

for i in range (7 ): 如果我== 3 :继续 打印(i ) 0

1

2

4

6

Q.23。什么是Python中的闭包?

当嵌套函数引用其封闭范围中的值时,会发生闭包。这里的重点是它记住了价值。

def A (x ): def B (): 打印(x ) 返回B.

A (7 )() 7

有关闭包的更多深度,请参阅Python中的闭包。

Q.24。解释Python中的//,%和**运算符。

//运算符执行分层。它将返回除法结果的整数部分。

7 // 2 3

正常师将在这里返回3.5。

同样,**执行取幂。a ** b将升高的值返回到幂b。

2 ** 10 1024

最后,%是模数。这为我们提供了可实现最高分工后的价值。

13 %7 6

3.5 %1.5 0.5

高级Python面试中的任何疑问和经验丰富的答案?请给出意见。

Q.24。我们在Python中有多少种运营商?解释算术运算符。

这种类型的Python访谈问题和答案可以决定你的Python知识。用一些很好的例子回答Python面试问题。

在Python中,我们有7种运算符:算术,关系,赋值,逻辑,成员身份,身份和按位。

我们有七个算术运算符。这些允许我们对值执行算术运算:

加法(+)这会增加两个值。

7 + 8 15

减法( - )从第一个减去第二个值。

7 - 8 -1

乘法(*)这乘以两个数字。

7 * 8 56

除法(/)这将第一个值除以第二个值。

7 / 8 0.875

1 / 1 1.0

对于分区,模数和取幂,请参考上一个问题。

问题25。在Python中解释关系运算符。

关系运算符比较值。

小于(<)如果左侧的值较小,则返回True。

'hi' < '嗨' False

大于(>)如果左侧的值更大,则返回True。

1.1 + 2.2 > 3.3 True

这是因为由于硬件依赖性,Python中的浮点算法存在缺陷。

小于或等于(<=)如果左边的值小于或等于,则返回True。

3.0 <= 3 True

大于或等于(> =)如果左边的值大于或等于,则返回True。

True> = False True

等于(==)如果两个值相等,则返回True。

{ 1 ,3 ,2 ,2 } == { 1 ,2 ,3 } True

不等于(!=)如果两个值不相等,则返回True。

真!= 0.1 True

错误!= 0.1 True

问题26。什么是Python中的赋值运算符?

这是Python访谈中的重要面试问题。

我们可以将所有算术运算符与赋值符号组合。

a = 7 a + = 1 a 8

a- = 1 a 7

a * = 2 a 14

a / = 2 a 7

a ** = 2 a 49.0

a // = 3 a 16.0

a%= 4 a 0.0

Q.27。解释Python中的逻辑运算符。

我们有三个逻辑运算符 - 或者,或者不是。

虚假和真实 假

7 < 7 或True 真正

不是2 == 2 假

问题28。什么是会员运营商?

通过运营商'in'和'not in',我们可以确认某个值是否是另一个的成员。

“我” 在“失望” 真正

'我们' 不是'失望' 真正

Q.29。在Python中解释身份运算符。

这是一个非常常见的Python面试问题,并通过示例回答它。

运营商'是'和'不'告诉我们两个值是否具有相同的身份。

10 是'10' 假

真的不是假的 真正

问题30。最后,告诉我们Python中的按位运算符。

它们一点一点地对值进行操作。

AND(&)这对每个位对执行&。

0b110&0b010 2

OR(|)执行| 在每个位对上。

3 | 2 3

XOR(^)这对每个位对执行异或运算。

3 ^ 2 1

二进制一的补码(〜)这将返回值的一个补码。

~ 2 -3

二进制左移(<<)将位向左移位指定的量。

1 << 2 4

这里,001向左移动两个位置得到100,这是二进制4。

二进制右移(>>)

4 >> 2 1

有关运算符的更多信息,请参阅Python中的运算符。

Q.31。除了十进制数系统之外的数字,你将如何使用?

使用Python,可以用二进制,八进制和十六进制输入数字。

二进制数由0和1组成。要输入二进制,我们使用前缀0b或0B。

int (0b1010 ) 10

要将数字转换为二进制形式,我们使用bin()。

bin (0xf ) '0b1111'

八进制数可以包含0到7之间的数字。我们使用前缀0o或0O。

oct (8 ) '0o10'

十六进制数字可以包含0到15之间的数字。我们使用前缀0x或0X。

六角(16 ) '为0x10'

六角(15 ) '0xf'

问题32。如何获得dictionary中所有键的列表?

具体在这些类型的Python面试问题和答案。

为此,我们使用功能键()。

mydict = { 'a' :1 ,'b' :2 ,'c' :3 ,'e' :5 } mydict。键() dict_keys ([ 'a' ,'b' ,'c' ,'e' ] ) Q.33。为什么带有前导下划线的标识符名称被贬低?

由于Python没有私有变量的概念,因此使用前导下划线来声明变量private是一种惯例。这就是为什么我们不能对我们不想私有的变量这样做。

Q.34。如何在一个声明中声明多个作业?

有两种方法可以做到这一点:

A,B,C = 3 ,4 ,5 #此分配3,图4和5所述的,b和C分别 a = b = c = 3 #这将3分配给a,b和c Q.35。什么是元组拆包?

首先,我们来讨论元组包装。这是一种将一组值打包成元组的方法。

mytuple = 3 ,4 ,5 mytuple (3,4,5)

这将3,4和5打包成mytuple。

现在,我们将元组中的值解包为变量x,y和z。

x,y,z = mytuple x + y + z 12

这些是高级Python面试问题和经验答案

这些是一些重要的Python面试问题和答案,你应该在面试之前先看看。随意添加一个问题。

这就是关于Python面试的问题和答案。希望大家多多关注。