Haben Sie die erste Anrufrunde mit der Personalabteilung abgeschlossen? Gehst du persönlich zu einem Python-Interview? Wenn Sie sich fragen, welche Python-bezogenen Fragen möglicherweise gestellt werden, sollte dieses Handbuch hilfreich sein.
Im ersten Abschnitt werden einige Fragen zur Python-Philosophie erörtert, die Ihnen helfen, Entscheidungen über die Architektur eines Projekts zu treffen. Im nächsten Abschnitt werden Fragen zur pythonischen Programmierung behandelt, die sich in Form einer Überprüfung oder der Suche nach der Ausgabe eines Codeausschnitts manifestieren können.
Ein Wort der Vorsicht, bevor wir anfangen. Dieses Handbuch befasst sich hauptsächlich mit den integrierten Funktionen von Python. Ziel dieses Handbuchs ist es, Sie mit den inhärenten Python-Funktionen vertraut zu machen, die eine schnelle Entwicklung ermöglichen. Wir werden daher nicht in der Lage sein, alle Fragen zu beantworten, die Sie möglicherweise von den verschiedenen Arten von Unternehmen erhalten.
Möchten Sie Ihre Python-Kenntnisse verbessern und sich in einem schnell wachsenden Markt abheben? Schauen Sie sich Zentica Premium an! Sie finden Bücher, mit denen Sie beginnen können (wie The Python Apprentice) und berufsbereite Fähigkeiten entwickeln können (wie Front-End-Tests in Python). Verbessern Sie Ihre Fähigkeiten mit The Python Master und greifen Sie auf eine wachsende Bibliothek mit über 400 Büchern und Kursen zu Webdesign und -entwicklung zu.
Entwicklung in Python: Projektarchitektur
Was ist Python? Warum sollten Sie Python verwenden?
Wenn Sie ein Interview für eine Python-Rolle führen, sollten Sie eine klare Vorstellung davon haben, was Python ist und wie es sich von anderen Programmiersprachen unterscheidet. Hier sind einige wichtige Punkte in Bezug auf Python, die Sie beachten sollten.
Erstens sollten Sie sich in Bezug auf die Etymologie nicht irren. Ein großer Teil der Python-Programmierer glaubt fälschlicherweise, dass Guido van Rossum es nach der Schlange benannt hat! Im Gegenteil, Python ist nach der britischen Sketch-Comedy benannt Monty Pythons Flying Circus.
Als nächstes ist Python eine objektorientierte, interpretierte Programmiersprache auf hoher Ebene. Dies bedeutet, dass Python-Code Zeile für Zeile ausgeführt wird. Python wird auch dynamisch typisiert, da Sie beim Deklarieren nicht den Variablentyp angeben müssen.
Aufgrund der Benutzerfreundlichkeit von Python hat es Anwendungen für allgemeine Automatisierungsaufgaben gefunden. Python ist häufig die erste Wahl für Programmierer, die mehrere Sprachen beherrschen. Mit der zunehmenden Beliebtheit von Python-basierten Web-Frameworks wie Django und Flask hat Pythons Anteil am Kuchen in den letzten Jahren erheblich zugenommen.
Einschränkungen von Python
Es ist zwar gut, die Fähigkeiten einer Programmiersprache zu kennen, aber es ist auch gut, sich ihrer Grenzen bewusst zu sein, um die Situationen wirklich zu verstehen, vor denen Sie vorsichtig sein müssen.
Die erste Einschränkung von Python ist die Ausführungsgeschwindigkeit. Obwohl die Entwicklung in Python schnell ist, ist die Ausführung eines ähnlichen Blocks von Python-Code im Vergleich zu kompilierten Sprachen wie C ++ oft langsamer. Aus diesem Grund geben Hackathons Python-Programmen häufig zusätzliche Zeit für die Ausführung. Es gibt jedoch Möglichkeiten, dieses Problem zu umgehen. Beispielsweise können Sie Python in eine kompilierte Sprache wie C integrieren, um die Kernverarbeitung in der anderen Sprache durchzuführen.
In einer Welt, die zuerst mobil wird, ist Python nicht für die mobile Entwicklung typisch. In Python entwickelte mobile Anwendungen finden Sie selten. Die beiden wichtigsten mobilen Betriebssysteme Android und iOS unterstützen Python nicht als offizielle Programmiersprache.
Paketbestimmung: Django vs Flask
Zusätzlich zu den Funktionen und Einschränkungen von Python konzentriert sich eine Kategorie von Fragen, die in Interviews beliebt sind, auf die Auswahl zwischen Paketen basierend auf Ihren Anforderungen. Schauen wir uns einen Ansatz an, den Sie bei der Beantwortung solcher Fragen verfolgen können.
Angenommen, Sie haben die Wahl zwischen Django und Flask, um eine Webanwendung zu starten. Die Antwort auf diese Frage sollte in einer Verschmelzung der Anforderungen des Projekts und der Kultur der Organisation liegen.
Zu Beginn sollten Sie wissen, dass es bei Verwendung von Plugins hier keine richtige Antwort gibt: Sie können ähnliche Anwendungen mit beiden Frameworks erstellen. Es gibt jedoch einen starken Unterschied zwischen den Designphilosophien der einzelnen Frameworks. Flask bietet Ihnen die minimalsten Funktionen, mit denen Sie eine Webanwendung wie URL-Routing, Vorlagen, Unit-Tests und einen Entwicklungsserver erstellen können. Dadurch haben Sie viel Freiheit beim Entwerfen Ihrer Anwendung. Auf der anderen Seite bietet Ihnen Django von Anfang an eine Vielzahl integrierter Funktionen - Datenbankunterstützung, umfangreiche Verwaltungsfunktionen und Sicherheitsfunktionen.
Wenn Sie eine Anwendung erstellen, die relationale Datenbanken mit viel dynamischem Inhalt verwendet, sollten Sie sich wahrscheinlich für Django entscheiden. Wenn Sie jedoch viel Freiheit in Ihrem Projekt suchen, sollten Sie sich für Flask entscheiden.
Pythonische Programmierweise
Ein wesentlicher Teil eines Python-Interviews besteht aus praktischer Programmierung. Dies kann in Form des Findens der Ausgabe oder des Überprüfens von Codefragmenten oder einfach in Form einer Diskussion über bestimmte Python-Funktionen erfolgen, die in bestimmten Szenarien hilfreich sind. In diesem Abschnitt werden verschiedene Funktionen und Richtlinien für die Python-Entwicklung vorgestellt.
Looping zip und enumerate
Die Art und Weise, wie Sie in Python Schleifen erstellen, unterscheidet sich von anderen Programmiersprachen. In Python integrierte Funktionen zip und enumerate helfen Ihnen dabei, effektivere Schleifen zu erstellen, die schneller ausgeführt werden. Sehen wir uns die Demonstration dieser beiden Funktionen an.
Angenommen, Sie möchten auf entsprechende Elemente aus zwei verschiedenen Listen zugreifen. Sie können die Länge der Listen durchlaufen und von jeder Liste aus auf das entsprechende Element zugreifen. Der folgende Code druckt beispielsweise das Auto und den entsprechenden Hersteller:
cars = [ 'CR-V' , 'Silverado' , 'F-150' ] manufacturers = [ 'Honda' , 'GM' , 'Ford' ] for i in range ( len ( cars ) ) : print ( cars [ i ] , manufacturers [ i ] )
Dies kann mit einer einfacheren Funktion in Python erreicht werden. zip ::
for car , manufacturer in zip ( cars , manufacturers ) : print ( car , manufacturer )
In diesem Beispiel ist zip Erstellt Paare zwischen den Elementen der beiden Listen. Es kann auch verwendet werden, um mehr als zwei Listen zu verbinden.
Mal sehen wie enumerate funktioniert. Wenn Sie sowohl auf den Index als auch auf den Wert von Elementen einer Liste zugreifen möchten, können Sie das folgende Snippet ausführen:
for i in range ( len ( cars ) ) : print ( i , cars [ i ] )
Die enumerate Funktion erledigt die gleiche Aufgabe:
for i , car in enumerate ( cars ) : print ( i , car )
Gebrauch von zip und enumerate Dadurch wird Ihr Code nicht nur komprimiert, sondern auch schneller ausgeführt.
Einzeilige Listenoperationen
Wenn Sie Elemente einer Liste ändern möchten, möchten Sie möglicherweise eine Funktion wie verwenden map , vielleicht wie folgt:
numbers = [ 1 , 2 , 3 , 4 , 5 ] def squared ( num ) : return num ** 2 squares = map ( squared , numbers )
Python erlaubt jedoch einzeilige Listenoperationen, um solche Aufgaben zu erfüllen. Im Folgenden werden zwei Möglichkeiten gezeigt, um dieselbe Aufgabe zu erfüllen:
squares = [ squared ( x ) for x in numbers ] squares = [ x ** 2 for x in numbers ]
Außerdem können Sie eine einzelne Zeile verwenden if ... else Aussagen auch innerhalb einer solchen Operation:
square_only_evens = [ x ** 2 if x % 2 == 0 else x for x in numbers ]
Sie können auch verwenden Lambda-Ausdrücke in diesen einzeiligen Operationen.
Debuggen mit pdb
Während Sie print-Anweisungen verwenden können, um Ihren Code in anderen Programmiersprachen zu debuggen, wird Python mit einem integrierten Debugger geliefert. pdb . Fügen Sie die folgende Codezeile in Ihr Programm ein, und die Ausführung stoppt in dieser Zeile, damit Sie die Umgebung debuggen können:
import pdb ; pdb . set_trace ( )
Alle bis zu diesem Zeitpunkt verfügbaren Variablen und Funktionen stehen Ihnen zur Verfügung, um Fehler zu überprüfen und zu finden.
Datenstrukturen
Um alle Funktionen von Python nutzen zu können, müssen Sie mit den integrierten Datenstrukturen vertraut sein. Eine Liste ist eine Sammlung von Elementen, die möglicherweise nicht vom gleichen Typ sind. Ein Tupel ähnelt einer Liste, ist jedoch unveränderlich. Ein Set ist eine ungeordnete Sammlung von Elementen und enthält keine Duplikate. Ein Wörterbuch ist eine Sammlung von Schlüssel-Wert-Paaren.
Sie müssen sich verschiedener Situationen bewusst sein, in denen diese Datenstrukturen verwendet werden können.
Abschließende Gedanken
Damit sind wir am Ende unserer Überlegungen für ein Python-Interview angelangt. Hoffentlich haben sie Ihnen einige hilfreiche Richtlinien zur Vorbereitung auf Ihr nächstes Interview gegeben. Viel Glück!
Finden Sie Ihren nächsten Remote-Python-Job mit Zentica Remote, wo wir die besten Remote-Jobs für Entwickler, Designer und Digitalprofis auswählen.