Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der häufigsten Fragen und Antworten zu Python-Interviews

Zusammenfassung der häufigsten Fragen und Antworten zu Python-Interviews

不言
不言nach vorne
2019-02-23 11:51:169373Durchsuche

Zusammenfassung der häufigsten Fragen und Antworten zu Python-Interviews

Dieser Artikel bietet Ihnen eine Zusammenfassung der häufigsten Fragen und Antworten zu Python. Ich hoffe, dass er für Sie hilfreich ist . Hilft.

Python-Neulinge müssen mit den Grundlagen von Python vertraut sein, bevor sie einen Job als Python-Programmierer suchen. Das technische Team der Programmier-Website DataFlair hat eine Sammlung der häufigsten Python-Interviewfragen im Jahr 2018 veröffentlicht. Es gibt sowohl grundlegende Python-Interviewfragen als auch fortgeschrittene Fragen, die Sie bei der Vorbereitung auf das Interview unterstützen. Alle Fragen werden von Antworten begleitet. Zu den Interviewfragen gehören Codierung, Datenstrukturen, Skripterstellung und andere Themen. Dieser Artikel ist der vorherige.

Empfohlene verwandte Artikel : „ Zusammenfassung der Python-Interviewfragen im Jahr 2020 (aktuell)

F 1: Was sind die Funktionen und Vorteile von Python?

Als einführende Programmiersprache hat Python vor allem folgende Eigenschaften und Vorteile:

Interpretierbar

Dynamische Eigenschaften

Objektorientiert

Prägnant und einfach

Open Source

Verfügt über starke Community-Unterstützung

Natürlich gehen die Vorteile von Python darüber hinaus.

F 2: Was ist der Unterschied zwischen Deep Copy und Shallow Copy?

Antwort: Beim Deep Copy wird ein Objekt auf ein anderes Objekt kopiert. Das heißt, wenn Sie Änderungen an der Kopie eines Objekts vornehmen, hat dies keine Auswirkungen auf das Originalobjekt. In Python verwenden wir die Funktion deepcopy(), um eine tiefe Kopie durchzuführen und die Modulkopie zu importieren, wie unten gezeigt:

>>> import copy
>>> b=copy.deepcopy(a)

Zusammenfassung der häufigsten Fragen und Antworten zu Python-Interviews

, während flache Kopie die Referenz eines Objekts kopiert auf einem anderen Objekt. Wenn wir also Änderungen an der Kopie vornehmen, wirkt sich dies auf das Originalobjekt aus. Wir verwenden die Funktion function(), um eine flache Kopie durchzuführen, und zwar mit folgendem Befehl:

>>> b=copy.copy(a)

Zusammenfassung der häufigsten Fragen und Antworten zu Python-Interviews

F 3. Was ist der Unterschied zwischen einer Liste und einem Tupel?

Antwort: Der Hauptunterschied zwischen den beiden besteht darin, dass Listen veränderbar sind, während Tupel unveränderlich sind. Zum Beispiel wie unten gezeigt:

>>> mylist=[1,3,3]
>>> mylist[1]=2
>>> mytuple=(1,3,3)
>>> mytuple[1]=2
Traceback (most recent call last):
File "<pyshell#97>", line 1, in <module>
mytuple[1]=2

Der folgende Fehler wird angezeigt:

TypeError: ‘tuple’ object does not support item assignment

Weitere Informationen zu Listen und Tupeln finden Sie hier:

https://data-flair.training/blogs/python-tuples-vs-lists/

Q4 bis Q20 sind grundlegende Python-Interviewfragen für Anfänger, aber auch erfahrene Leute können es tun. Schauen Sie sich diese Fragen an grundlegende Konzepte zu überprüfen.

F 4. Erklären Sie den ternären Operator in Python

Im Gegensatz zu C++ haben wir in Python kein ?:, aber wir haben Folgendes:

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

Wenn der Ausdruck wahr ist, führen Sie die Anweisung in [bei wahr] aus. Andernfalls führen Sie die Anweisung in [on false] aus.

So verwenden Sie es:

>>> a,b=2,3
>>> min=a if a<b else b
>>> min

Laufergebnis:

2
>>> print("Hi") if a<b else print("Bye")

Laufergebnis:

Hi

F 5. Wie Multithreading in Python implementieren?

Ein Thread ist ein einfacher Prozess, der es uns ermöglicht, mehrere Threads gleichzeitig auszuführen. Wir alle wissen, dass Python eine Multithread-Sprache mit einem integrierten Multithreading-Toolkit ist.

Die GIL (Global Interpreter Lock) in Python gewährleistet die Ausführung jeweils eines einzelnen Threads. Ein Thread speichert die GIL und führt einige Vorgänge aus, bevor er sie an den nächsten Thread weitergibt, was uns die Illusion einer parallelen Ausführung vermittelt. Aber in Wirklichkeit sind es nur Threads, die abwechselnd auf der CPU laufen. Natürlich erhöht jede Übergabe den Speicherdruck bei der Programmausführung.

F 6. Erklären Sie die Vererbung in Python

Wenn eine Klasse von einer anderen Klasse erbt, wird sie als Unterklasse/abgeleitete Klasse bezeichnet, die von der übergeordneten Klasse/Basisklasse erbt /Superklasse. Es erbt/ruft alle Klassenmitglieder (Eigenschaften und Methoden) ab.

Vererbung ermöglicht uns die Wiederverwendung von Code und erleichtert die Erstellung und Wartung von Anwendungen. Python unterstützt die folgenden Arten der Vererbung:

Einzelvererbung: Eine Klasse erbt von einer einzelnen Basisklasse

Mehrfachvererbung: Eine Klasse erbt von mehreren Basisklassen

Mehrstufig Vererbung: Eine Klasse erbt von einer einzelnen Basisklasse, die wiederum von einer anderen Basisklasse erbt

Hierarchische Vererbung: Mehrere Klassen erben von einer einzelnen Basisklasse

Gemischte Vererbung: zwei oder mehr Typen Vermischung Vererbung

Weitere Informationen zur Vererbung finden Sie unter:

https://data-flair.training/blogs/python-inheritance/

F 7. Was ist Flask?

Flask ist ein leichtes Webanwendungs-Framework, das in Python geschrieben ist. Seine WSGI-Toolbox verwendet Werkzeug und seine Template-Engine verwendet Jinja2. Flask ist unter BSD lizenziert. Zwei der Umgebungsabhängigkeiten sind Werkzeug und jinja2, was bedeutet, dass es nicht auf externe Bibliotheken angewiesen ist. Aus diesem Grund nennen wir es ein leichtgewichtiges Framework.

Flask-Sitzungen verwenden signierte Cookies, um Benutzern das Anzeigen und Ändern von Sitzungsinhalten zu ermöglichen. Es protokolliert Informationen von einer Anfrage zur anderen. Um die Sitzung zu ändern, muss der Benutzer jedoch über den geheimen Flask.secret_key verfügen.

F 8. Wie wird der Speicher in Python verwaltet?

Python 有一个私有堆空间来保存所有的对象和数据结构。作为开发者,我们无法访问它,是解释器在管理它。但是有了核心 API 后,我们可以访问一些工具。Python 内存管理器控制内存分配。

另外,内置垃圾回收器会回收使用所有的未使用内存,所以使其适用于堆空间。

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

Help() 函数是一个内置函数,用于查看函数或模块用途的详细说明:

>>> import copy
>>> help(copy.copy)

运行结果为:

Help on function copy in module copy:

copy(x)

Shallow copy operation on arbitrary Python objects.

See the module’s __doc__ string for more info.

Dir() 函数也是 Python 内置函数,dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。

以下实例展示了 dir 的使用方法:

>>> 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__’, ‘__qualname__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’]

Q 10. 当退出 Python 时,是否释放全部内存?

答案是 No。循环引用其它对象或引用自全局命名空间的对象的模块,在 Python 退出时并非完全释放。

另外,也不会释放 C 库保留的内存部分。

Q 11. 什么是猴子补丁?

在运行期间动态修改一个类或模块。

>>> class A:
    def func(self):
        print("Hi")
>>> def monkey(self):
print "Hi, monkey"
>>> m.A.func = monkey
>>> a = m.A()
>>> a.func()

运行结果为:

Hi, Monkey

Q 12. Python 中的字典是什么?

字典是 C++ 和 Java 等编程语言中所没有的东西,它具有键值对。

>>> roots={25:5,16:4,9:3,4:2,1:1}
>>> type(roots)
<class &#39;dict&#39;>
>>> roots[9]

运行结果为:

3

字典是不可变的,我们也能用一个推导式来创建它。

>>> roots={x**2:x for x in range(5,0,-1)}
>>> roots

运行结果:

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

Q 13. 请解释使用 *args 和 **kwargs 的含义

当我们不知道向函数传递多少参数时,比如我们向传递一个列表或元组,我们就使用*args。

>>> def func(*args):
    for i in args:
        print(i)  
>>> func(3,2,1,4,7)

运行结果为:

3
2
1
4
7

在我们不知道该传递多少关键字参数时,使用**kwargs来收集关键字参数。

>>> def func(**kwargs):
    for i in kwargs:
        print(i,kwargs[i])
>>> func(a=1,b=2,c=7)

运行结果为:

a.1

b.2

c.7

Q 14. 请写一个Python逻辑,计算一个文件中的大写字母数量

>>> import os

>>> os.chdir(&#39;C:\Users\lifei\Desktop&#39;)
>>> with open(&#39;Today.txt&#39;) as today:
    count=0
    for i in today.read():
        if i.isupper():
            count+=1

运行结果:

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. 如何以就地操作方式打乱一个列表的元素?

为了达到这个目的,我们从random模块中导入shuffle()函数。

>>> from random import shuffle
>>> shuffle(mylist)
>>> mylist

运行结果:

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

Q 17. 解释Python中的join()和split()函数

Join()能让我们将指定字符添加至字符串中。

>>> &#39;,&#39;.join(&#39;12345&#39;)

运行结果:

‘1,2,3,4,5’

Split()能让我们用指定字符分割字符串。

>>> &#39;1,2,3,4,5&#39;.split(&#39;,&#39;)

运行结果:

[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

Q 18. Python区分大小写吗?

如果能区分像myname和Myname这样的标识符,那么它就是区分大小写的。也就是说它很在乎大写和小写。我们可以用Python试一试:

>>> myname=&#39;Ayushi&#39;
>>> Myname
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>

运行结果:

Myname
NameError: name ‘Myname’ is not defined

可以看到,这里出现了NameError,所以Python是区分大小写的。

Q 19. Python中的标识符长度能有多长?

在Python中,标识符可以是任意长度。此外,我们在命名标识符时还必须遵守以下规则:

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

其余部分可以使用 A-Z/a-z/0-9

区分大小写

关键字不能作为标识符,Python中共有如下关键字:

Q 20. 怎么移除一个字符串中的前导空格?

字符串中的前导空格就是出现在字符串中第一个非空格字符前的空格。我们使用方法Istrip()可以将它从字符串中移除。

>>> &#39;   Ayushi &#39;.lstrip()

结果:

‘Ayushi   ‘

可以看到,该字符串既有前导字符,也有后缀字符,调用Istrip()去除了前导空格。如果我们想去除后缀空格,就用rstrip()方法。

>>> &#39;   Ayushi &#39;.rstrip()

结果:

‘   Ayushi’

从Q 21到Q 35是为有Python经验者准备的进阶版Python面试题。

Q 21. 怎样将字符串转换为小写?

我们使用lower()方法。

>>> &#39;AyuShi&#39;.lower()

结果:

‘ayushi’

使用upper()方法可以将其转换为大写。

>>> &#39;AyuShi&#39;.upper()

结果:

‘ayushi’

另外,使用isupper()和islower()方法检查字符串是否全为大写或小写。

>>> &#39;AyuShi&#39;.isupper()
False
>>> &#39;AYUSHI&#39;.isupper()
True
>>> &#39;ayushi&#39;.islower()
True
>>> &#39;@yu$hi&#39;.islower()
True
>>> &#39;@YU$HI&#39;.isupper()
True

那么,像@和$这样的字符既满足大写也满足小写。

Istitle()能告诉我们一个字符串是否为标题格式。

>>> &#39;The Corpse Bride&#39;.istitle()
True

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

在用Python写代码时,有时可能还没想好函数怎么写,只写了函数声明,但为了保证语法正确,必须输入一些东西,在这种情况下,我们会使用pass语句。

>>> def func(*args):
          pass 
>>>

同样,break语句能让我们跳出循环。

>>> for i in range(7):
    if i==3: break
print(i)

结果:

0
1
2

最后,continue语句能让我们跳到下个循环。

>>> for i in range(7):
    if i==3: continue
print(i)

结果:

0
1
2 
4 
5
6

Q 23. Python中的闭包是什么?
当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包。其意义就是会记录这个值。

>>> def A(x):
    def B():
        print(x)
    return B
>>> A(7)()

结果:

17

更多关于闭包的知识,请参看这里:

https://data-flair.training/blogs/python-closure/

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

//运算符执行地板除法(向下取整除),它会返回整除结果的整数部分。
>>> 7//2
3

这里整除后会返回3.5。

同样地,执行取幂运算。ab会返回a的b次方。

>>> 2**10
1024

最后,%执行取模运算,返回除法的余数。

>>> 13%7
6
>>> 3.5%1.5
0.5

Q 24. 在Python中有多少种运算符?解释一下算数运算符。

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

我们有7个算术运算符,能让我们对数值进行算术运算:

1.加号(+),将两个值相加

>>> 7+8
15

2.减号(-),将第一个值减去第二个值

>>> 7-8
-1

3.乘号(*),将两个值相乘

>>> 7*8
56

4.除号(/),用第二个值除以第一个值

>>> 7/8
0.875
>>> 1/1
1.0

5.向下取整除、取模和取幂运算,参见上个问题。

Q 25. 解释一下Python中的关系运算符

关系运算符用于比较两个值。

1.小于号(

>>> &#39;hi&#39;<&#39;Hi&#39;
False

2.大于号(>),如果左边的值较大,则返回True。

>>> 1.1+2.2>3.3
True

3.小于等于号(

>>> 3.0<=3
True

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

>>> True>=False
True

等于号(==),如果符号两边的值相等,则返回True。

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

不等于号(!=),如果符号两边的值不相等,则返回True。

>>> True!=0.1
True
>>> False!=0.1
True

Q 26. 解释一下Python中的赋值运算符

这在Python面试中是个重要的面试问题。

我们将所有的算术运算符和赋值符号放在一起展示:

>>> a=7
>>> a+=1
>>> a
8
>>> a-=1
>>> a
7
>>> a*=2
>>> a
14
>>> a/=2
>>> a
7.0 
>>> a**=2
>>> a
49
>>> a//=3
>>> a
16.0
>>> a%=4
>>> a
0.0

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

Python中有3个逻辑运算符:and,or,not。

>>> False and True
False

>>> 7<7 or True
True

>>> not 2==2
False

Q 28. 解释一下Python中的成员运算符

通过成员运算符‘in’和‘not in’,我们可以确认一个值是否是另一个值的成员。

>>> &#39;me&#39; in &#39;disappointment&#39;
True

>>> &#39;us&#39; not in &#39;disappointment&#39;
True

Q 29. 解释一下Python中的身份运算符

这也是一个在Python面试中常问的问题。

通过身份运算符‘is’和‘is not’,我们可以确认两个值是否相同。

>>> 10 is &#39;10&#39;
False

>>> True is not False
True

Q 30. 讲讲Python中的位运算符

该运算符按二进制位对值进行操作。

与(&),按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

>>> 0b110 & 0b010
2

2.或(|),按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。

>>> 3|2
3

3.异或(^),按位异或运算符:当两对应的二进位相异时,结果为1

>>> 3^2
1

4.取反(~),按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1

>>> ~2
-3

5.左位移(

>>> 1<<2
4

6.右位移(>>),把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

>>> 4>>2
1

更多关于运算符的知识,参考这里:
https://data-flair.training/blogs/python-operators/

Q 31. 在Python中如何使用多进制数字?

我们在Python中,除十进制外还可以使用二进制、八进制和十六进制。

二进制数字由0和1组成,我们使用 0b 或 0B 前缀表示二进制数。

>>> int(0b1010)
10

2.使用bin()函数将一个数字转换为它的二进制形式。

>>> bin(0xf)
‘0b1111’

3.八进制数由数字 0-7 组成,用前缀 0o 或 0O 表示 8 进制数。

>>> oct(8)
‘0o10’

4.十六进数由数字 0-15 组成,用前缀 0x 或者 0X 表示 16 进制数。

>>> hex(16)
‘0x10’

>>> hex(15)
‘0xf’

Q 32. 怎样获取字典中所有键的列表?

使用 keys() 获取字典中的所有键

>>> mydict={&#39;a&#39;:1,&#39;b&#39;:2,&#39;c&#39;:3,&#39;e&#39;:5}
>>> mydict.keys()
dict_keys([&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;e&#39;])

Q 33. 为何不建议以下划线作为标识符的开头

因为Python并没有私有变量的概念,所以约定速成以下划线为开头来声明一个变量为私有。所以如果你不想让变量私有,就不要使用下划线开头。

Q 34. 怎样声明多个变量并赋值?

一共有两种方式:

>>> a,b,c=3,4,5 #This assigns 3, 4, and 5 to a, b, and c respectively
>>> a=b=c=3 #This assigns 3 to a, b, and 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视频教程

Das obige ist der detaillierte Inhalt vonZusammenfassung der häufigsten Fragen und Antworten zu Python-Interviews. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:公众号:Python人工智能. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen