2018年前35名Python面试问题和答案

要使用Python作为更新的工作,您必须熟悉基础知识。在这里,我整理了一些基本的

Python面试问题和答案以及一些高级Python问题和答案,以帮助您完成面试。有Python开发人员面试问题,Python编码面试问题,数据结构面试问题以及Python Scripting面试问题。深入研究Python编程面试问题。

2018年前35名Python面试问题和答案

1,Python面试问题

问题1。Python的主要功能是什么?

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

  1. 解读
  2. 动态类型
  3. 面向对象
  4. 简洁明了
  5. 自由
  6. 有一个庞大的社区

事实上,这还不是全部。Python是如此之多。

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

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

  1. >>>导入副本
  2. >>> b =复制。深度扫描(一)
2018年前35名Python面试问题和答案

深层复制 - Python面试问题与解答

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

  1. >>> b =复制。副本(一)
2018年前35名Python面试问题和答案

浅拷贝 - Python访谈问题和答案

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

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

  1. >>> MYLIST = [ 1 ,3 ,3 ]
  2. >>> mylist [ 1 ] = 2
  3. >>> mytuple = (1 ,3 ,3 )
  4. >>> mytuple [ 1 ] = 2
  5. 回溯(最近的呼叫最后):
  6. 中的文件“” ,第1 行
  7. 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]下执行。

以下是如何使用它:

  1. >>> A,B = 2 ,3
  2. >>> min = a if a
  3. >>>分钟

2

  1. >>> print (“Hi” )如果print (“Bye” )

你好

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

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

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

问题6。解释继承。

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

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

  1. 单一继承 - 类继承自单个基类。
  2. 多重继承 - 一个类继承自多个基类。
  3. 多级继承 - 类继承自基类,而基类继承自另一个基类。
  4. 分层继承 - 多个类从单个基类继承。
  5. 混合继承 - 混合继承是两种或更多种类型的继承的组合。

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()函数显示文档字符串及其参数的帮助。

  1. >>>导入副本
  2. >>> 帮助(copy.copy )

有关模块复制中的功能复制的帮助:

副本(X)

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

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

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

  1. >>> 目录(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补丁?

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

  1. >>> A类:
  2. def func (self ):
  3. 打印(“hi” )
  4. >>> def monkey (self ):
  5. 打印“hi,monkey”
  6. >>> mAfunc =monkey
  7. >>> a = m。A ()
  8. >>> a。func ()

嗨,猴子

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

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

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

3

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

  1. >>>根= { X ** 2 :X为沿x 范围(5 ,0 , - 1 )}
  2. >>>根

{25:5,16:4,9:3,4:2,1:1}

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

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

  1. >>> def func (* args ):
  2. 因为我在args:
  3. 打印(i )
  4. >>> FUNC (3 ,2 ,1 ,4 ,7 )

3

2

1

4

7

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

  1. >>> def func (** kwargs ):
  2. 对于我在kwargs:
  3. 打印
    (i,kwargs [ i ] )
  4. >>> func (a = 1 ,b = 2 ,c = 7 )

A.1

B.2

C.7

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

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

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

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

26

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

我们来看一个清单吧。

  1. >>> MYLIST = [ 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ]

与正面指数不同,负指数从右边开始搜索。

  1. >>> mylist [ - 3 ]

6

这也有助于从后面切片:

  1. >>> mylist [ - 6 : - 1 ]

[3,4,5,6,7]

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

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

  1. >>>来自随机导入shuffle
  2. >>> shuffle (mylist )
  3. >>> mylist

[3,4,8,0,5,7,6,2,1]

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

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

  1. >>> ',' 。加入('12345' )

'1,2,3,4,5'

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

  1. >>> '1,2,3,4,5' 。分裂(',' )

['1','2','3','4','5']

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

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

  1. >>> myname = 'Ayushi'
  2. >>> Myname
  3. Traceback(最近的呼叫最后):
  4. 中的文件“” ,第1 行

我的名字

NameError:未定义名称“Myname”

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

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

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

  1. 它只能以下划线或AZ或az中的字符开头。
  2. 其余部分可以包含以下内容:AZ / az / _ / 0-9。
  3. 正如我们在前一个问题中所讨论的那样,Python区分大小写。
  4. 关键字不能用作标识符。Python有以下关键字:

和高清假进口不真正如德尔最后在要么尝试断言ELIF对于是通过而打破其他从拉姆达打印同类除全球没有提高产量继续EXEC如果外地返回

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

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

  1. >>> 'Ayushi' 。lstrip ()

'Ayushi'

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

  1. >>> 'Ayushi' 。rstrip ()

'Ayushi'

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

3.高级Python面试问题和经验丰富的答案

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

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

我们使用lower()方法。

  1. >>> 'AyuShi' 。()

'ayushi'

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

  1. >>> 'AyuShi' 。()

'AYUSHI'

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

  1. >>> 'AyuShi' 。isupper ()

  1. >>> 'AYUSHI' 。isupper ()

真正

  1. >>> 'ayushi' 。islower ()

真正

  1. >>> '@ yu $ hi' 。islower ()

真正

  1. >>> '@ YU $ HI' 。isupper ()

真正

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

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

  1. >>> '尸体新娘' 。istitle ()

真正

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

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

  1. >>> def func (* args ):
  2. 通过
  3. >>>

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

  1. >>> for i in range (7 ):
  2. 如果我== 3 :休息
  3. 打印(i )

0

1

2

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

  1. >>> for i in range (7 ):
  2. 如果我== 3 :继续
  3. 打印(i )

0

1

2

4

6

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

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

  1. >>> def A (x ):
  2. def B ():
  3. 打印(x )
  4. 返回B.
  5. >>> A (7 )()

7

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

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

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

  1. >>> 7 // 2

3

正常师将在这里返回3.5。

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

  1. >>> 2 ** 10

1024

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

  1. >>> 13 %7

6

  1. >>> 3.5 %1.5

0.5

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

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

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

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

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

  1. 加法(+)这会增加两个值。
  2. >>> 7 + 8

15

  1. 减法( - )从第一个减去第二个值。
  2. >>> 7 - 8

-1

  1. 乘法(*)这乘以两个数字。
  2. >>> 7 * 8

56

  1. 除法(/)这将第一个值除以第二个值。
  2. >>> 7 / 8

0.875

  1. >>> 1 / 1

1.0

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

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

关系运算符比较值。

  1. 小于(
  2. >>> 'hi' < '嗨'

False

  1. 大于(>)如果左侧的值更大,则返回True。
  2. >>> 1.1 + 2.2 > 3.3

True

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

  1. 小于或等于(<=)如果左边的值小于或等于,则返回True。
  2. >>> 3.0 <= 3

True

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

True

  1. 等于(==)如果两个值相等,则返回True。
  2. >>> { 1 ,3 ,2 ,2 } == { 1 ,2 ,3 }

True

  1. 不等于(!=)如果两个值不相等,则返回True。
  2. >>>真!= 0.1

True

  1. >>>错误!= 0.1

True

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

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

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

  1. >>> a = 7
  2. >>> a + = 1
  3. >>> a

8

  1. >>> a- = 1
  2. >>> a

7

  1. >>> a * = 2
  2. >>> a

14

  1. >>> a / = 2
  2. >>> a

7

  1. >>> a ** = 2
  2. >>> a

49.0

  1. >>> a // = 3
  2. >>> a

16.0

  1. >>> a%= 4
  2. >>> a

0.0

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

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

  1. >>>虚假和真实

  1. >>> 7 < 7 或True

真正

  1. >>>不是2 == 2

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

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

  1. >>> “我” 在“失望”

真正

  1. >>> '我们' 不是'失望'

真正

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

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

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

  1. >>> 10 是'10'

  1. >>>真的不是假的

真正

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

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

  1. AND(&)这对每个位对执行&。
  2. >>> 0b110&0b010

2

  1. OR(|)执行| 在每个位对上。
  2. >>> 3 | 2

3

  1. XOR(^)这对每个位对执行异或运算。
  2. >>> 3 ^ 2

1

  1. 二进制一的补码(〜)这将返回值的一个补码。
  2. >>> ~ 2

-3

  1. 二进制左移(<
  2. >>> 1 << 2

4

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

  1. 二进制右移(>>)
  2. >>> 4 >> 2

1

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

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

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

  1. 二进制数由0和1组成。要输入二进制,我们使用前缀0b或0B。
  2. >>> int (0b1010 )

10

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

  1. >>> bin (0xf )

'0b1111'

  1. 八进制数可以包含0到7之间的数字。我们使用前缀0o或0O。
  2. >>> oct (8 )

'0o10'

  1. 十六进制数字可以包含0到15之间的数字。我们使用前缀0x或0X。
  2. >>> 六角(16 )

'为0x10'

  1. >>> 六角(15 )

'0xf'

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

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

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

  1. >>> mydict = { 'a' :1 ,'b' :2 ,'c' :3 ,'e' :5 }
  2. >>> mydict。()
  3. dict_keys ([ 'a' ,'b' ,'c' ,'e' ] )

Q.33。为什么带有前导下划线的标识符名称被贬低?

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

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

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

  1. >>> A,B,C = 3 ,4 ,5 #此分配3,图4和5所述的,b和C分别
  2. >>> a = b = c = 3 #这将3分配给a,b和c

Q.35。什么是元组拆包?

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

  1. >>> mytuple = 3 ,4 ,5
  2. >>> mytuple

(3,4,5)

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

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

  1. >>> x,y,z = mytuple
  2. >>> x + y + z

12

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

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

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


分享到:


相關文章: