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
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)
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. ▍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:将删除列表中顶部的元素,并返回列表的顶部元素。 ▍14、什么是switch语句。如何在Python中创建switch语句? ▍15、举例说明Python中的range函数? range:range函数返回从起点到终点的一系列序列。 range(start, end, step),第三个参数是用于定义范围内的步数。 ▍16、==和is的区别是? ==比较两个对象或值的相等性。 is运算符用于检查两个对象是否属于同一内存对象。 ▍17、如何更改列表的数据类型? 要将列表的数据类型进行更改,可以使用tuple()或者set()。 ▍18、Python中注释代码的方法有哪些? 在Python中,我们可以通过下面两种方式进行注释。 1. 三引号''',用于多行注释。 2. 单井号#,用于单行注释。 ▍19、!=和is not运算符的区别? !=如果两个变量或对象的值不相等,则返回true。 is not是用来检查两个对象是否属于同一内存对象。 ▍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. ▍22、iterables和iterators之间的区别? iterable:可迭代是一个对象,可以对其进行迭代。在可迭代的情况下,整个数据一次存储在内存中。 iterators:迭代器是用来在对象上迭代的对象。它只在被调用时被初始化或存储在内存中。迭代器使用next从对象中取出元素。 ▍23、Python中的Map Function是什么? map函数在对可迭代对象的每一项应用特定函数后,会返回map对象。 ▍24、解释Python中的Filter? 过滤器函数,根据某些条件从可迭代对象中筛选值。 ▍25、解释Python中reduce函数的用法? reduce()函数接受一个函数和一个序列,并在计算后返回数值。 ▍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. **kwargs,是当我们想将字典作为参数传递给函数时使用的。 ▍28、解释re模块的split()、sub()、subn()方法? split():只要模式匹配,此方法就会拆分字符串。 sub():此方法用于将字符串中的某些模式替换为其他字符串或序列。 subn():和sub()很相似,不同之处在于它返回一个元组,将总替换计数和新字符串作为输出。 ▍29、Python中的生成器是什么? 生成器(generator)的定义与普通函数类似,生成器使用yield关键字生成值。 如果一个函数包含yield关键字,那么该函数将自动成为一个生成器。 ▍30、如何使用索引来反转Python中的字符串? ▍31、类和对象有什么区别? 类(Class)被视为对象的蓝图。类中的第一行字符串称为doc字符串,包含该类的简短描述。 在Python中,使用class关键字可以创建了一个类。一个类包含变量和成员组合,称为类成员。 对象(Object)是真实存在的实体。在Python中为类创建一个对象,我们可以使用obj = CLASS_NAME() 例如:obj = num() 使用类的对象,我们可以访问类的所有成员,并对其进行操作。 ▍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. ▍40、Python支持多重继承吗? Python可以支持多重继承。多重继承意味着,一个类可以从多个父类派生。 ▍41、Python中使用的zip函数是什么? zip函数获取可迭代对象,将它们聚合到一个元组中,然后返回结果。 zip()函数的语法是zip(*iterables) ▍42、解释Python中map()函数? map()函数将给定函数应用于可迭代对象(列表、元组等),然后返回结果(map对象)。 我们还可以在map()函数中,同时传递多个可迭代对象。 ▍43、Python中的装饰器是什么? 装饰器(Decorator)是Python中一个有趣的功能。 它用于向现有代码添加功能。这也称为元编程,因为程序的一部分在编译时会尝试修改程序的另一部分。 ▍44、编写程序,查找文本文件中最长的单词 ▍45、编写程序,检查序列是否为回文 ▍46、编写程序,打印斐波那契数列的前十项 ▍47、编写程序,计算文件中单词的出现频率 ▍48、编写程序,输出给定序列中的所有质数 ▍49、编写程序,检查数字是否为Armstrong 将每个数字依次分离,并累加其立方(位数)。 最后,如果发现总和等于原始数,则称为阿姆斯特朗数(Armstrong)。 ▍50、用一行Python代码,从给定列表中取出所有的偶数和奇数
▍6. Wie wird Python-Code ausgeführt? 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]]
numbers = [1,2,3,4,5]
numbers.remove(5)
> [1,2,3,4]
del numbers[0]
>[2,3,4]
numbers.pop()
>4
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
# 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
lst1 = [1,2,3]
lst2 = [1,2,3]
lst1 == lst2
>True
lst1 is lst2
>False
lst = [1,2,3,4,2]
# 更改为集合
set(lst) ## {1,2,3,4}
# 更改为元组
tuple(lst) ## (1,2,3,4,2)
lst1 = [1,2,3,4]
lst2 = [1,2,3,4]
lst1 != lst2
>False
lst1 is not lst2
>True
a = lambda x, y:x + y
print(a(5, 6))
> 11
# 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
# 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]
from functools import reduce
a = lambda x,y:x+y
print(reduce(a,[1,2,3,4]))
> 10
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
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 'dict'>
name is alex
Age is 22
Phone is 1234567890
Data type of argument: <class 'dict'>
name is louis
Email is a@gmail.com
Country is Wakanda
Age is 25
import re
string = "There are two ball in the basket 101"
re.split("\W+",string)
---------------------------------------
['There', 'are', 'two', 'ball', 'in', 'the', 'basket', '101']
re.sub("[^A-Za-z]"," ",string)
----------------------------------------
'There are two ball in the basket'
re.subn("[^A-Za-z]"," ",string)
-----------------------------------------
('There are two ball in the basket', 10)
# 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
string = 'hello'
string[::-1]
>'olleh'
class Person:
""" This is a Person Class"""
# varable
age = 10
def greets(self):
print('Hello')
# object
obj = Person()
print(obj.greet)
----------------------------------------
Hello
from SomeOtherProduct.SomeModule import SomeClass
def speak(self):
return "Hello!"
SomeClass.speak = speak
numbers = [1, 2, 3]
string = ['one', 'two', 'three']
result = zip(numbers,string)
print(set(result))
-------------------------------------
{(3, 'three'), (2, 'two'), (1, 'one')}
numbers = (1, 2, 3, 4)
result = map(lambda x: x + x, numbers)
print(list(result))
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
def longest_word(filename):
with open(filename, 'r') 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('test.txt'))
----------------------------------------------------
['comprehensions']
a = input("Enter The sequence")
ispalindrome = a == a[::-1]
ispalindrome
>True
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]
from collections import Counter
def word_count(fname):
with open(fname) as f:
return Counter(f.read().split())
print(word_count("test.txt"))
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]
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")
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!