Heim  >  Artikel  >  Backend-Entwicklung  >  Gold drei, Silber vier, 50 wichtige Python-Interviewfragen (empfohlene Sammlung)

Gold drei, Silber vier, 50 wichtige Python-Interviewfragen (empfohlene Sammlung)

Python当打之年
Python当打之年nach vorne
2023-08-15 14:41:131181Durchsuche


Im vergangenen Jahr gewann Python den jährlichen TIOBE Programming Language Award und wurde die beliebteste Programmiersprache im vergangenen Jahr. Es wird häufig in Bereichen wie Datenwissenschaft und maschinellem Lernen eingesetzt.


Es ist die „Golden Three Silver Four“-Rekrutierungssaison. Xiao F hat für Sie 50 Python-Interviewfragen sowie entsprechende Antworten zusammengestellt, damit Sie besser verstehen und Python lernen.



▍1 Was ist Python? Warum ist es so beliebt?

Python ist eine interpretierte, allgemeine Programmiersprache auf hohem Niveau.


Das Designkonzept von Python besteht darin, die Lesbarkeit des Codes durch die Verwendung notwendiger Leerzeichen und Leerzeilen zu verbessern.


Es ist wegen seiner einfachen und benutzerfreundlichen Syntax beliebt.


▍2. Warum ist die Python-Ausführung langsam und wie können wir sie verbessern?


Der Grund, warum Python-Code langsam ausgeführt wird, liegt darin, dass es sich um eine interpretierte Sprache handelt. Der Code wird zur Laufzeit interpretiert und nicht in die Muttersprache kompiliert.


Um die Geschwindigkeit des Python-Codes zu verbessern, können wir CPython, Numba verwenden oder auch einige Änderungen am Code vornehmen.


1. Reduzieren Sie die Speichernutzung.

2. Integrierte Funktionen und Bibliotheken verwenden.

3. Verschieben Sie die Berechnung aus der Schleife.

4. Halten Sie Ihre Codebasis klein.

5. Vermeiden Sie unnötige Zyklen



▍3. Was sind die Eigenschaften von Python?


1

5. OOPS-Unterstützung

6. Eine große Anzahl von Standardbibliotheken und Drittanbietermodulen

7. Erweiterbarkeit (wir können PythonCode in C oder C++ schreiben)

8. Benutzerfreundliche Datenstruktur



▍4. Was sind die Anwendungen von Python?


1. Desktop-GUI-Entwicklung

3. Künstliche Intelligenz und maschinelles Lernen

5. Geschäft Anwendungsentwicklung

6. Konsolenbasierte Anwendungen

8. Web-Automatisierung

10. Bildverarbeitungsanwendungen

▍5.
Einschränkungen von Python?


1

2. Mobile Entwicklung

3. Speicherverbrauch (sehr hoch im Vergleich zu anderen Sprachen)

4. Inkompatibilität von zwei Versionen (2,3)

5 Fehler treten nur zur Laufzeit auf)



▍6. Wie wird Python-Code ausgeführt?

Zuerst liest der Interpreter den Python-Code und prüft, ob Syntax- oder Formatierungsfehler vorliegen.


Wenn ein Fehler gefunden wird, wird die Ausführung ausgesetzt. Wenn keine Fehler gefunden werden, konvertiert der Interpreter den Python-Code in seine entsprechende Form, den Bytecode.


Der Bytecode wird dann an die Python Virtual Machine (PVM) gesendet, wo der Python-Code ausgeführt wird und wenn Fehler gefunden werden, wird die Ausführung angehalten, andernfalls werden die Ergebnisse angezeigt das Ausgabefenster. 7.

Wie verwaltet man den Speicher in Python?


Der Python-Speicher wird vom privaten Headspace von Python verwaltet.


Alle Python-Objekte und Datenstrukturen befinden sich in einem privaten Heap. Die Zuweisung des privaten Heaps liegt in der Verantwortung des Python-Speichermanagers.


Python verfügt außerdem über einen integrierten Garbage Collector, der ungenutzten Speicher zurückgewinnen und Speicher freigeben kann, sodass er für Headspace verwendet werden kann.



▍ 8. Erklären Sie die in Python integrierten Datenstrukturen?

Es gibt vier Haupttypen von Datenstrukturen in Python.


Liste: Eine Liste ist eine Sammlung heterogener Datenelemente, die von ganzen Zahlen bis zu Zeichenfolgen oder sogar einer anderen Liste reichen. Listen sind veränderbar. Listen erledigen die Aufgabe der meisten Sammlungsdatenstrukturen in anderen Sprachen. Listen werden in eckigen Klammern [ ] definiert.

Zum Beispiel: a = [1,2,3,4]


Menge: Eine Menge ist eine ungeordnete Sammlung einzigartiger Elemente. Mengenoperationen wie Vereinigung|, Schnittpunkt& und Differenz können auf Mengen angewendet werden. Mengen sind unveränderlich. () wird verwendet, um eine Menge darzustellen.

Zum Beispiel: a = {1,2,3,4}


Tupel: Python-Tupel funktionieren genau wie Python-Listen, außer dass sie unveränderlich sind. () wird zum Definieren von Tupeln verwendet.

Zum Beispiel: a = (1,2,3,4)


Wörterbuch: Ein Wörterbuch ist eine Sammlung von Schlüssel-Wert-Paaren. Es ähnelt Hash-Maps in anderen Sprachen. In einem Wörterbuch sind Schlüssel eindeutige und unveränderliche Objekte. ? , * *Betreiber?


//(Bodendivision) – Dies ist ein Divisionsoperator, der den ganzzahligen Teil der Division zurückgibt.

Beispiel: 5 // 2 = 2


% (Modulo) – Gibt den Rest der Division zurück.

Beispiel: 5 % 2 = 1


** (Leistung) – Es werden exponentielle Berechnungen für den Operator durchgeführt. a ** b stellt a in der b-ten Potenz dar.

Zum Beispiel: 5 ** 2 = 25, 5 ** 3 = 125



▍10. Was ist der Unterschied zwischen einfachen Anführungszeichen und doppelten Anführungszeichen in Python?


Es gibt keinen Unterschied zwischen einfachen Anführungszeichen (' ') oder doppelten Anführungszeichen (" ") in Python, beide können zur Darstellung einer Zeichenfolge verwendet werden.


Diese beiden allgemeinen Ausdrücke vereinfachen nicht nur die Entwicklung von Programmierern und vermeiden Fehler, sondern haben auch den Vorteil, dass die Verwendung von Escape-Zeichen reduziert wird und das Programm prägnanter und klarer aussieht.



▍11. Der Unterschied zwischen Anhängen, Einfügen und Erweitern in Python?


anhängen: Neue Elemente am Ende der Liste hinzufügen.

Einfügen: Fügen Sie ein Element an einer bestimmten Position in der Liste hinzu.

extend: Erweitern Sie eine Liste, indem Sie eine neue Liste hinzufügen.


numbers = [1,2,3,4,5]
numbers.append(6)
print(numbers)
>[1,2,3,4,5,6]

## insert(position,value)
numbers.insert(2,7)  
print(numbers)
>[1,2,7,4,5,6]

numbers.extend([7,8,9])
print(numbers)
>[1,2,7,4,5,6,7,8,9]

numbers.append([4,5])
>[1,2,7,4,5,6,7,8,9,[4,5]]



▍12. Was sind Pause, Weiter und Pass?


break: Dadurch verlässt das Programm die Schleife, wenn die Bedingung erfüllt ist.

continue: Kehrt zum Anfang der Schleife zurück, wodurch das Programm alle verbleibenden Anweisungen in der aktuellen Schleifeniteration überspringt.

pass: Bewirkt, dass das Programm alle verbleibenden Anweisungen ohne Ausführung übergibt.



▍13、区分Python中的remove,del和pop?


remove:将删除列表中的第一个匹配值,它以值作为参数。

del:使用索引删除元素,它不返回任何值。

pop:将删除列表中顶部的元素,并返回列表的顶部元素。


numbers = [1,2,3,4,5]
numbers.remove(5)
> [1,2,3,4]

del numbers[0]
>[2,3,4]

numbers.pop()
>4



▍14、什么是switch语句。如何在Python中创建switch语句?


switch语句是实现多分支选择功能,根据列表值测试变量。

switch语句中的每个值都被称为一个case。

在Python中,没有内置switch函数,但是我们可以创建一个自定义的switch语句。

switcher = {
   1: "January",
   2: "February",
   3: "March",
   4: "April",
   5: "May",
   6: "June",
   7: "July",
   8: "August",
   9: "September",
   10: "October",
   11: "November",
   12: "December"
}
month = int(input())
print(switcher.get(month))

> 3
march


▍15、举例说明Python中的range函数?


range:range函数返回从起点到终点的一系列序列。

range(start, end, step),第三个参数是用于定义范围内的步数。


# number
for i in range(5):
    print(i)
> 0,1,2,3,4

# (start, end)
for i in range(1, 5):
    print(i)
> 1,2,3,4

# (start, end, step)
for i in range(0, 5, 2):
    print(i)
>0,2,4



▍16、==和is的区别是?


==比较两个对象或值的相等性

is运算符用于检查两个对象是否属于同一内存对象。


lst1 = [1,2,3]
lst2 = [1,2,3]

lst1 == lst2
>True

lst1 is lst2
>False


▍17、如何更改列表的数据类型?


要将列表的数据类型进行更改,可以使用tuple()或者set()。


lst = [1,2,3,4,2]

# 更改为集合
set(lst)    ## {1,2,3,4}
# 更改为元组
tuple(lst)  ## (1,2,3,4,2)



▍18、Python中注释代码的方法有哪些?


在Python中,我们可以通过下面两种方式进行注释。


1. 三引号''',用于多行注释。

2. 单井号#,用于单行注释。



▍19、!=和is not运算符的区别?


!=如果两个变量或对象的值不相等,则返回true。

is not是用来检查两个对象是否属于同一内存对象。


lst1 = [1,2,3,4]
lst2 = [1,2,3,4]

lst1 != lst2
>False

lst1 is not lst2
>True



▍20, Hat Python eine Hauptfunktion?


Ja, das tut es. Sobald wir das Python-Skript ausführen, wird es automatisch ausgeführt.



▍21. Was ist eine Lambda-Funktion?


Eine Lambda-Funktion ist eine einzeilige Funktion ohne Namen, die n Parameter, aber nur einen Ausdruck haben kann. Auch anonyme Funktionen genannt.


a = lambda x, y:x + y 
print(a(5, 6))

> 11



▍22、iterables和iterators之间的区别?


iterable:可迭代是一个对象,可以对其进行迭代。在可迭代的情况下,整个数据一次存储在内存中。


iterators:迭代器是用来在对象上迭代的对象。它只在被调用时被初始化或存储在内存中。迭代器使用next从对象中取出元素。


# List is an iterable
lst = [1,2,3,4,5]
for i in lst:
    print(i)

# iterator
lst1 = iter(lst)
next(lst1)
>1
next(lst1)
>2
for i in lst1:
    print(i)
>3,4,5



▍23、Python中的Map Function是什么?


map函数在对可迭代对象的每一项应用特定函数后,会返回map对象。



▍24、解释Python中的Filter


过滤器函数,根据某些条件从可迭代对象中筛选值。


# iterable
lst = [1,2,3,4,5,6,7,8,9,10]

def even(num):
    if num%2==0:
        return num

# filter all even numbers
list(filter(even,lst))
---------------------------------------------
[2, 4, 6, 8, 10]



▍25、解释Python中reduce函数的用法?


reduce()函数接受一个函数和一个序列,并在计算后返回数值。


from functools import reduce

a = lambda x,y:x+y
print(reduce(a,[1,2,3,4]))

> 10



▍26. Was sind Beizen und Entbeizen?


Beizen ist der Prozess der Konvertierung von Python-Objekten (oder sogar Python-Code) in Strings.

Unpickling ist der umgekehrte Vorgang der Umwandlung einer Zeichenfolge in das Originalobjekt.



▍27, Erklären Sie *args und **kwargs?


*Argumente werden verwendet, wenn wir nicht sicher sind, wie viele Argumente an die Funktion übergeben werden sollen.


def add(* num):
    sum = 0 
    for val in num:
        sum = val + sum 
    print(sum)


add(4,5)
add(7,4,6)
add(10,34,23)
--------------------- 
9 
17 
57


**kwargs,是当我们想将字典作为参数传递给函数时使用的。


def intro(**data):
    print("\nData type of argument:",type(data))
    for key, value in data.items():
        print("{} is {}".format(key,value))


intro(name="alex",Age=22, Phone=1234567890)
intro(name="louis",Email="a@gmail.com",Country="Wakanda", Age=25)
--------------------------------------------------------------
Data type of argument: <class &#39;dict&#39;>
name is alex
Age is 22
Phone is 1234567890

Data type of argument: <class &#39;dict&#39;>
name is louis
Email is a@gmail.com
Country is Wakanda
Age is 25



▍28、解释re模块的split()、sub()、subn()方法


split():只要模式匹配,此方法就会拆分字符串。

sub():此方法用于将字符串中的某些模式替换为其他字符串或序列。

subn():和sub()很相似,不同之处在于它返回一个元组,将总替换计数和新字符串作为输出。


import re
string = "There are two ball in the basket 101"


re.split("\W+",string)
---------------------------------------
[&#39;There&#39;, &#39;are&#39;, &#39;two&#39;, &#39;ball&#39;, &#39;in&#39;, &#39;the&#39;, &#39;basket&#39;, &#39;101&#39;]

re.sub("[^A-Za-z]"," ",string)
----------------------------------------
&#39;There are two ball in the basket&#39;

re.subn("[^A-Za-z]"," ",string)
-----------------------------------------
(&#39;There are two ball in the basket&#39;, 10)



▍29、Python中的生成器是什么


生成器(generator)的定义与普通函数类似,生成器使用yield关键字生成值。


如果一个函数包含yield关键字,那么该函数将自动成为一个生成器。


# A program to demonstrate the use of generator object with next() A generator function 
def Fun(): 
   yield 1
   yield 2
   yield 3

# x is a generator object 
x = Fun()
print(next(x))
-----------------------------
1
print(next(x))
-----------------------------
2



▍30、如何使用索引来反转Python中的字符串?


string = &#39;hello&#39;

string[::-1]
>&#39;olleh&#39;



▍31、类和对象有什么区别?


类(Class)被视为对象的蓝图。类中的第一行字符串称为doc字符串,包含该类的简短描述。


在Python中,使用class关键字可以创建了一个类。一个类包含变量和成员组合,称为类成员。


对象(Object)是真实存在的实体。在Python中为类创建一个对象,我们可以使用obj = CLASS_NAME()

例如:obj = num()


使用类的对象,我们可以访问类的所有成员,并对其进行操作。


class Person:
    """ This is a Person Class"""
    # varable
    age = 10
    def greets(self):
        print(&#39;Hello&#39;)


# object
obj = Person()
print(obj.greet)
----------------------------------------
Hello



▍32、你对Python类中的self有什么了解?


self repräsentiert eine Instanz einer Klasse.


Durch die Verwendung des Schlüsselworts self können wir auf die Eigenschaften und Methoden einer Klasse in Python zugreifen.


Beachten Sie, dass self in Klassenfunktionen verwendet werden muss, da es keine explizite Syntax zum Deklarieren von Variablen in der Klasse gibt.



▍33 Was ist die Verwendung von _init_ in Python?


„__init__“ ist eine reservierte Methode in Python-Klassen.


Es heißt Konstruktor, wird automatisch aufgerufen, wenn der Code ausgeführt wird, und wird hauptsächlich zum Initialisieren aller Variablen der Klasse verwendet.



▍34. Vererbung in Python erklären?


Vererbung ermöglicht einer Klasse, alle Mitglieder und Eigenschaften einer anderen Klasse zu erhalten. VererbungVererbung ermöglicht die Wiederverwendbarkeit von Code und erleichtert so die Erstellung und Wartung von Anwendungen.


Die geerbte Klasse wird Superklasse genannt und die geerbte Klasse wird abgeleitete Klasse/Unterklasse genannt.



▍35. Was ist OOPS in Python?


Objektorientierte Programmierung, Abstraktion, Kapselung, Vererbung, Polymorphismus ▍ 36. Was ist Abstraktion?



Abstraktion ist der Prozess, bei dem das Wesen oder die notwendigen Eigenschaften eines Objekts der Außenwelt gezeigt und alle anderen irrelevanten Informationen ausgeblendet werden.



▍37. Was ist Kapselung?


Kapselung bedeutet, Daten und Mitgliedsfunktionen in einer Einheit zusammenzufassen.


Es implementiert auch das Konzept des Datenverbergens.



▍38 Was ist Polymorphismus?


Polymorphismus bedeutet „viele Formen“.


Eine Unterklasse kann ihr eigenes einzigartiges Verhalten definieren und dennoch die gleiche Funktionalität oder das gleiche Verhalten wie ihre übergeordnete/Basisklasse teilen.



▍39 Was ist Monkey Patching in Python?


Monkey-Patching bezieht sich auf die dynamische Änderung von Klassen oder Modulen zur Laufzeit.


from SomeOtherProduct.SomeModule import SomeClass

def speak(self):
    return "Hello!"

SomeClass.speak = speak



▍40、Python支持多重继承吗?


Python可以支持多重继承。多重继承意味着,一个类可以从多个父类派生。



▍41、Python中使用的zip函数是什么?


zip函数获取可迭代对象,将它们聚合到一个元组中,然后返回结果。


zip()函数的语法是zip(*iterables)


numbers = [1, 2, 3]
string = [&#39;one&#39;, &#39;two&#39;, &#39;three&#39;] 
result = zip(numbers,string)

print(set(result))
-------------------------------------
{(3, &#39;three&#39;), (2, &#39;two&#39;), (1, &#39;one&#39;)}



▍42、解释Python中map()函数?


map()函数将给定函数应用于可迭代对象(列表、元组等),然后返回结果(map对象)。


我们还可以在map()函数中,同时传递多个可迭代对象。 


numbers = (1, 2, 3, 4)
result = map(lambda x: x + x, numbers)

print(list(result))



▍43、Python中的装饰器是什么?


装饰器(Decorator)是Python中一个有趣的功能。


它用于向现有代码添加功能。这也称为元编程,因为程序的一部分在编译时会尝试修改程序的另一部分。


def addition(func):
    def inner(a,b):
        print("numbers are",a,"and",b)
        return func(a,b)
    return inner

@addition
def add(a,b):
   print(a+b)

add(5,6)
---------------------------------
numbers are 5 and 6
sum: 11



▍44、编写程序,查找文本文件中最长的单词


def longest_word(filename):
    with open(filename, &#39;r&#39;) as infile:
              words = infile.read().split()
    max_len = len(max(words, key=len))
    return [word for word in words if len(word) == max_len]

print(longest_word(&#39;test.txt&#39;))
----------------------------------------------------
[&#39;comprehensions&#39;]



▍45、编写程序,检查序列是否为回文


a = input("Enter The sequence")
ispalindrome = a == a[::-1]

ispalindrome
>True



▍46、编写程序,打印斐波那契数列的前十项


fibo = [0,1]
[fibo.append(fibo[-2]+fibo[-1]) for i in range(8)]

fibo
> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]



▍47、编写程序,计算文件中单词的出现频率


from collections import Counter

def word_count(fname):
        with open(fname) as f:
                return Counter(f.read().split())

print(word_count("test.txt"))



▍48、编写程序,输出给定序列中的所有质数


lower = int(input("Enter the lower range:"))
upper = int(input("Enter the upper range:"))
list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(lower, upper)))

-------------------------------------------------
Enter the lower range:10
Enter the upper range:50
[11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]


▍49、编写程序,检查数字是否为Armstrong


Gold drei, Silber vier, 50 wichtige Python-Interviewfragen (empfohlene Sammlung)


将每个数字依次分离,并累加其立方(位数)。


最后,如果发现总和等于原始数,则称为阿姆斯特朗数(Armstrong)。


num = int(input("Enter the number:\n"))
order = len(str(num))

sum = 0
temp = num

while temp > 0:
   digit = temp % 10
   sum += digit ** order
   temp //= 10

if num == sum:
   print(num,"is an Armstrong number")
else:
   print(num,"is not an Armstrong number")



▍50、用一行Python代码,从给定列表中取出所有的偶数和奇数


a = [1,2,3,4,5,6,7,8,9,10]
odd, even = [el for el in a if el % 2==1], [el for el in a if el % 2==0]

print(odd,even)
> ([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])


Das obige ist der detaillierte Inhalt vonGold drei, Silber vier, 50 wichtige Python-Interviewfragen (empfohlene Sammlung). 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