Die neuesten 60 Python-Interviewfragen und ausgewählten Antworten für 2019! Eine Pflichtlektüre bei der Jobsuche im neuen Jahr: Vorteile für Pythons. [Empfohlene Tutorials: Python-Tutorial]
1 Was sind die Funktionen und Vorteile von Python?
Antwort: Weggelassen.
2. Was ist eine Lambda-Funktion? Welche Vorteile bietet es?
Eine Lambda-Funktion ist eine Funktion, die eine beliebige Anzahl von Argumenten (einschließlich optionaler Argumente) akzeptiert und einen einzelnen Ausdruckswert zurückgibt. Lambda-Funktionen dürfen keine Befehle und nicht mehr als einen Ausdruck enthalten. Versuchen Sie nicht, zu viel in eine Lambda-Funktion zu packen. Wenn Sie etwas Komplexeres benötigen, definieren Sie eine normale Funktion und machen Sie sie so lang, wie Sie möchten.
Die Lambda-Funktion kann eine beliebige Anzahl von Parametern akzeptieren, einschließlich optionaler Parameter, es gibt jedoch nur einen Ausdruck:
>>> g = lambda x, y: x*y
>>> g(3,4)
12
>>> g = Lambda +z
>> ;> g(1)
1
>>> g(3, 4, 7)
14
Sie können auch Verwenden Sie die Lambda-Funktion direkt, ohne sie einer Variablen zuzuweisen:
>>> (lambdax,y=0,z=0:x+y+z )(3,5,6)
14Wenn Ihre Funktion sehr einfach ist, nur einen Ausdruck und keine Befehle enthält, können Sie die Lambda-Funktion in Betracht ziehen. Andernfalls definieren Sie besser eine Funktion. Schließlich unterliegen Funktionen nicht so vielen Einschränkungen.3. Was ist der Unterschied zwischen Deep Copy und Shallow Copy?
Deep Copy ist das Kopieren des Objekts selbst in ein anderes Objekt. Das heißt, wenn Sie Änderungen an einer Kopie eines Objekts vornehmen, hat das Originalobjekt keine Auswirkungen. In Python verwenden wir die Funktion deepcopy(). Die Verwendungsmethode ist wie folgt: >>> import copy>>> copy.deepcopy( a) Flache Kopie ist das Kopieren der Referenz eines Objekts auf ein anderes Objekt. Wenn wir also Änderungen an der Kopie vornehmen, wirkt sich dies auf das Originalobjekt aus. Verwenden Sie die Funktion copy(), um eine flache Kopie durchzuführen: >>> Was sind Listen und Tupel?versuchen…außer…außer…[else…][finally…]Führen Sie die Anweisung unter try aus. Wenn eine Ausnahme ausgelöst wird, springt der Ausführungsprozess zur Ausnahme-Anweisung . Versuchen Sie, jeden Ausnahmezweig nacheinander auszuführen. Wenn die ausgelöste Ausnahme mit der Ausnahmegruppe in Ausnahme übereinstimmt, führen Sie die entsprechende Anweisung aus. Wenn nicht alle Ausnahmen übereinstimmen, wird die Ausnahme an den Try-Code der nächsthöheren Ebene übergeben, der diesen Code aufruft.
Die Anweisung unter try wird normal ausgeführt und der Code des else-Blocks wird ausgeführt. Wenn eine Ausnahme auftritt, wird sie nicht ausgeführt; wenn es eine final-Anweisung gibt, wird sie immer am Ende ausgeführt.
5. Wie generiert man Zufallszahlen in Python?Antwort: Zufallsmodul Zufällige Ganzzahl: random.randint(a,b): Gibt eine zufällige Ganzzahl x, a<=x<=b
zurück random .randrange(start,stop,[,step]): Gibt eine zufällige Ganzzahl im Bereich (start,stop,step) zurück, mit Ausnahme des Endwerts.
Zufällige reelle Zahl: random.random(): Gibt eine Gleitkommazahl zwischen 0 und 1 zurück
random.uniform(a,b): Gibt eine Gleitkommazahl innerhalb des angegebenen Bereichs zurück
6. Wie implementiert man Multithreading in Python?a. Python verfügt über ein Multithreading-Paket, aber wenn Sie möchten, dass Multithreading Ihren Code beschleunigt, ist es normalerweise keine gute Idee, es zu verwenden. b. Python hat eine Struktur namens GlobalInterpreter Lock (GIL). Die GIL stellt sicher, dass jeweils nur ein „Thread“ ausgeführt werden kann. Ein Thread erhält die GIL, erledigt ein wenig Arbeit und übergibt die GIL dann an den nächsten Thread.
c. Dies geschieht sehr schnell, sodass es für das menschliche Auge so aussieht, als würden Ihre Threads parallel ausgeführt, in Wirklichkeit wechseln sie sich jedoch ab und nutzen denselben CPU-Kern.
d. Alle diese GIL-Durchgänge erhöhen den Overhead bei der Ausführung. Das bedeutet, dass es im Allgemeinen keine gute Idee ist, das Threading-Paket zu verwenden, wenn Ihr Code schneller ausgeführt werden soll.
7. Wie verwende ich den ternären Operator in Python?Der ternäre Operator ist ein Operator, der zur Anzeige bedingter Anweisungen verwendet wird. Dies enthält Aussagen, die einen wahren oder falschen Wert ergeben. Syntax: Die Syntax des ternären Operators lautet wie folgt:
[on_true] if [expression] else [on_false]
Beispiel:
x, y = 25,50
big = x if x < y else y
Wenn x Vererbung ermöglicht es einer Klasse, alle Mitglieder (z. B. Eigenschaften und Methoden) einer anderen Klasse zu erhalten. Vererbung ermöglicht die Wiederverwendbarkeit von Code und erleichtert so die Erstellung und Wartung von Anwendungen. Die Klasse, die wir erben, heißt Superklasse und die Klasse, von der wir erben, heißt abgeleitete/Unterklasse. Die folgenden verschiedenen Arten der Vererbung werden von Python unterstützt: a. Einzelvererbung – eine abgeleitete Klasse erhält Mitglieder einer einzelnen Oberklasse. b. Mehrstufige Vererbung – Die abgeleitete Klasse d1 erbt von der Basisklasse base1, d2 erbt von basis2. c. Hierarchische Vererbung – eine beliebige Anzahl von Unterklassen kann von einer Basisklasse geerbt werden. d. Mehrfachvererbung – eine abgeleitete Klasse erbt von mehreren Basisklassen. 9. Erklären Sie, was Flask ist und welche Vorteile es hat. Flask ist ein Python-Web-Mikroframework, das auf der BSD-Lizenz „Werkzeug, Jinja2 und Good Intentions“ basiert. Werkzeug und Jinja2 sind zwei seiner Abhängigkeiten. Dies bedeutet, dass nahezu keine Abhängigkeiten von externen Bibliotheken bestehen. Dadurch wird das Framework leichtgewichtig und weist nur wenige Abhängigkeiten von Updates und weniger Sicherheitslücken auf. Sitzungen ermöglichen es Ihnen grundsätzlich, sich Informationen von einer Anfrage zur nächsten zu merken. In Flask verwenden Sitzungen signierte Cookies, damit der Benutzer den Sitzungsinhalt anzeigen und ändern kann. Nur wenn ein Schlüssel Flask.secret_key vorhanden ist, kann der Benutzer die Sitzung ändern. 10. Was ist ein Wörterbuch in Python? Der in Python integrierte Datentyp wird als Wörterbuch bezeichnet. Es definiert die Eins-zu-Eins-Beziehung zwischen Schlüsseln und Werten. Ein Wörterbuch enthält ein Schlüsselpaar und die entsprechenden Werte. Wörterbücher werden nach Schlüsseln indiziert. Nehmen wir ein Beispiel: Das folgende Beispiel enthält einige Schlüssel, Land, Hauptstadt und PM, und ihre entsprechenden Werte sind Indien, Delhi bzw. Modi. dict={'Country':'India','Capital':'Delhi','PM':'Modi'} print dict[Country] Indien print dict[Capital] Delhi print dict[PM] Modi 11. Was ist Warum werden negative Exponenten verwendet? Sequenzen in Python sind indiziert und bestehen aus positiven und negativen Zahlen. Positive Zahlen verwenden „0“ als ersten Index, „1“ als zweiten Index usw. Indizes für negative Zahlen beginnen mit „-1“, was den letzten Index in der Sequenz darstellt, „-2“ als vorletzten Index usw. 12. Wie verwende ich Python, um eine Textzeichenfolge abzufragen und zu ersetzen? Sie können die sub()-Methode zum Abfragen und Ersetzen verwenden. Das Format der sub-Methode ist: a. b. replacement ist der zu ersetzende Text c string ist der Text, der ersetzt werden muss d. count ist ein optionaler Parameter, der sich auf das Maximum bezieht Anzahl der Ersetzungen 13. Erklären Sie die und-oder-Syntax von Python. ähnelt dem C-Ausdruck bool ? b, aber bool und a oder b, wenn a ist falsch. Funktioniert nicht wie der C-Ausdruck bool ? (booland[a ]or[b])[0] Da [a] eine nicht leere Liste ist, kann sie niemals falsch sein. Selbst wenn a 0 oder '' oder ein anderer falscher Wert ist, ist list[a] wahr, weil es ein Element hat. 1. Verwenden Sie die Set-Funktion, set(list) 2. Verwenden Sie die Wörterbuchfunktion, >>>a=[1,2,4,2,4,5,6,5,7,8,9,0] >>> b={} >>>b=b.fromkeys(a) >>>c=list(b. Tasten ()) >>> c Einfache Anführungszeichen und doppelte Anführungszeichen sind gleichwertig. Wenn Sie die Zeile umbrechen möchten, benötigen Sie das Symbol (). Dreifache Anführungszeichen können die Zeile direkt umbrechen und Kommentare enthalten. Wenn Sie möchten Let's go Diese Zeichenfolge ausdrücken einfache Anführungszeichen: s4 = 'Lass uns gehen' doppelte Anführungszeichen: s5 = "Lass uns gehen" s6 = 'Gefällt mir wirklich "Python"! ’ Aus diesem Grund können sowohl einfache als auch doppelte Anführungszeichen Zeichenfolgen darstellen. Die Antwort ist nein. Variablen mit Objektzirkelverweisen oder globalen Namespaceverweisen werden beim Beenden von Python häufig nicht freigegebenAußerdem werden einige von der C-Bibliothek beibehaltene Inhalte nicht freigegeben. Die Funktion match() erkennt nur, ob RE am Anfang der Zeichenfolge übereinstimmt. search() durchsucht die gesamte Zeichenfolge, um eine Übereinstimmung zu finden wenn es an Position 0 erfolgreich ist. Rückgabe: Wenn die Startposition nicht erfolgreich abgeglichen wurde, gibt match() keine zurück. Betrachten Sie das unten gezeigte Beispiel: aus zufälliger Importmischung x = ['Keep', 'The', 'Blue', 'Flag', 'Fliegend', 'Hoch'] shuffle(x) print(x) Die Ausgabe des folgenden Codes ist wie folgt. ['Flying', 'Keep', 'Blue', 'High', 'The', 'Flag'] Kompilierung und Verknüpfung ermöglichen die korrekte und fehlerfreie Kompilierung neuer Erweiterungen und können nur verknüpft werden, wenn sie den Kompilierungsprozess bestehen. Wenn dynamisches Laden verwendet wird, hängt es von den vom System bereitgestellten Stilen ab. Der Python-Interpreter kann zum dynamischen Laden von Konfigurationseinstellungsdateien verwendet werden und der Interpreter wird neu erstellt. Dies erfordert die folgenden Schritte: a. Erstellen Sie eine Datei mit einem beliebigen Namen und in einer beliebigen Sprache, die vom System-Compiler unterstützt wird. Zum Beispiel file.c oder file.cpp b. Platzieren Sie diese Datei im Modules/-Verzeichnis der von Ihnen verwendeten Distribution. c. Fügen Sie eine Zeile in der Datei Setup.local hinzu, die im Verzeichnis Modules/ vorhanden ist. d. Führen Sie die Datei mit spam file.o aus. e Nachdem Sie diesen Rebuild-Interpreter erfolgreich ausgeführt haben, verwenden Sie den Befehl make im Verzeichnis der obersten Ebene. f. Wenn sich die Datei geändert hat, führen Sie rebuildMakefile mit dem Befehl „make Makefile“ aus. 20. Python erklärt die Methoden split(), sub(), subn() des Moduls „re“. Um eine Zeichenfolge zu ändern, bietet das „re“-Modul von Python drei Methoden. Sie sind: split() – „spaltet“ die gegebene Zeichenfolge mithilfe regulärer Ausdrücke in eine Liste auf. sub() – Findet alle Teilzeichenfolgen, die einem Regex-Muster entsprechen, und ersetzt sie durch andere Zeichenfolgen. subn() – Es ähnelt sub() und gibt außerdem eine neue Zeichenfolge und eine Ersetzungssequenznummer zurück. 21. Was ist der Unterschied zwischen range und xrange? Xrange und range sind größtenteils funktional identisch, da sie beide eine Möglichkeit bieten, eine Liste von Ganzzahlen zu generieren, die Sie verwenden können. Der einzige Unterschied besteht darin, dass „range“ ein Python-Listenobjekt und „xrange“ ein xrange-Objekt zurückgibt. Das bedeutet, dass xrange keine statischen Listen generiert, wie dies zur Laufzeit der Fall ist. Mithilfe einer speziellen Technik namens Yieling werden Werte nach Bedarf erstellt. Diese Technik funktioniert mit einem Objekt namens Generator. Das heißt, wenn Sie einen wirklich großen Bereich haben und eine Liste erstellen möchten, sagen wir 1 Milliarde, ist xrange die zu verwendende Funktion. Dies gilt insbesondere dann, wenn Sie ein wirklich speicherempfindliches System haben, wie z. B. das von Ihnen verwendete Telefon, da Range genauso viel Speicher benötigt wie für die Erstellung des Integer-Arrays, was zu Speicherfehlern führen kann und das Programm zum Absturz bringen. 22. Unterschiede zwischen Django, Pyramid und Flask. Flask ist ein „Mikroframework“, das hauptsächlich für kleine Anwendungen mit einfacheren Anforderungen verwendet wird. In Flask müssen Sie externe Bibliotheken verwenden. Pyramide eignet sich für große Anwendungen. Es bietet Flexibilität und ermöglicht Entwicklern, die richtigen Tools für ihre Projekte zu verwenden. Entwickler können die Datenbank, die URL-Struktur, den Vorlagenstil usw. auswählen. Django kann auch wie Pyramid für größere Anwendungen verwendet werden. 23. Geerbte Stile in Django auflisten. In Django gibt es drei mögliche Vererbungsstile: Abstrakte Basisklasse: Verwenden Sie diese, wenn Sie möchten, dass die übergeordnete Klasse nur Informationen enthält, für die Sie keine Eingabe vornehmen möchten jeder untergeordnete Modellstil. Mehrtabellenvererbung: Verwenden Sie diesen Stil, wenn Sie vorhandene Modelle in Unterklassen unterteilen und jedes Modell über eine eigene Datenbanktabelle verfügen muss. Proxy-Modell: Sie können dieses Modell verwenden, wenn Sie nur das Verhalten des Modells auf Python-Ebene ändern möchten, ohne die Felder des Modells zu ändern. 24. Was ist ein Python-Affen-Patch? In Python bezieht sich der Begriff Monkey Patch einfach auf die dynamische Änderung einer Klasse oder eines Moduls zur Laufzeit. Betrachten Sie das folgende Beispiel: # m.py class MyClass: def f(self): print " f ()" Dann können wir den Monkey-Patch-Test wie folgt ausführen: import m def Monkey_f(self): print " Monkey_f( )" m.MyClass.f = Monkey_f obj = m.MyClass() obj.f() Die Ausgabe ist wie folgt: monkey_f() Wir können sehen, dass wir außerhalb des Moduls einige Änderungen am Verhalten der Funktion f() vorgenommen haben und die Funktion Monkey_f() tatsächlich ausgeführt wird. 25. Es gibt zwei Folgen a und b, beide der Größe n. Die Werte der Folgenelemente sind beliebige ganze Zahlen, ungeordnet? Anforderung: Minimieren Sie die Differenz zwischen [Summe der Elemente der Sequenz a] und [Summe der Elemente der Sequenz b], indem Sie Elemente in a und b austauschen. 1. Füge die beiden Sequenzen zu einer Sequenz zusammen und sortiere sie in die Sequenz Quelle 2. Nimm das größte Element Big und das zweitgrößte Element Small heraus 3. In Die verbleibende Sequenz S[:-2] wird gleichmäßig geteilt, um die Sequenz max, min 4 zu erhalten. Addieren Sie Small zur Max-Sequenz, erhöhen Sie Big zur Min-Sequenz und berechnen Sie die neue Sequenzsumme The Die größere Summe ist max, die kleine ist min. 26. Wie versende ich E-Mails mit Python? Sie können die smtplib-Standardbibliothek verwenden. Der folgende Code kann auf Servern ausgeführt werden, die SMTP-Listener unterstützen. import sys, smtplib fromaddr = raw_input ("Von:") toaddrs = raw_input ("To:"). split(',') print „Nachricht eingeben, mit ^D enden:“ msg = ” while 1: line = sys .stdin.readline() if not line: break msg = msg + line # Mail-Teil senden server = smtplib.SMTP('localhost') server.sendmail(fromaddr, toaddrs, msg) server.quit() 27 Eine Python-Logik, die die Anzahl der Großbuchstaben in einer Datei zählt. 28. Wie lang kann ein Bezeichner in Python sein? In Python können Bezeichner beliebig lang sein. Darüber hinaus müssen wir bei der Benennung von Bezeichnern die folgenden Regeln beachten: a Es darf nur mit einem Unterstrich oder einem Buchstaben in A-Z/a-z beginnen b Der Rest kann A-Z/ verwenden. a-z/ 0-9 c. Schlüsselwörter können nicht als Bezeichner verwendet werden: //-Operator führen eine Bodendivision (Division durch Abrunden) durch und geben den ganzzahligen Teil des Ganzzahldivisionsergebnisses zurück. >>> 7//2 3 Nach der Teilbarkeit hier wird 3,5 zurückgegeben. Führen Sie auf ähnliche Weise eine Potenzierungsoperation durch. ab wird a an die Macht b zurückgeben. >>> 2**10 1024 Abschließend führt % die Modulo-Operation aus und gibt den Rest der Division zurück. >> In Python können wir neben Dezimalzahlen auch Binär-, Oktal- und Hexadezimalzahlen verwenden. a. Binärzahlen bestehen aus 0 und 1, und wir verwenden das Präfix 0b oder 0B, um Binärzahlen darzustellen. >>> int (0b1010) 10b Verwenden Sie die Funktion bin(), um eine Zahl in ihre Binärform umzuwandeln. >>> bin (0xf) '0b1111' c. Oktalzahlen bestehen aus den Zahlen 0-7, wobei das Präfix 0o oder 0O 8 angibt -Basissystemnummer. >>> oct(8) '0o10' d Die Hexadezimalzahl besteht aus den Zahlen 0-15, dargestellt durch das Präfix 0x oder 0X Hexadezimale Zahl. >>> hex (16) '0x10' >> Verwenden Sie „keys()“, um alle Schlüssel im Wörterbuch abzurufen >>>mydict={'a':1,'b':2,'c' : 3,'e':5} >>> mydict.keys() dict_keys(['a', 'b', 'c', 'e' ] ) 32. Wie deklariere ich mehrere Variablen und weist Werte zu? Es gibt zwei Möglichkeiten: >>> a,b,c=3,4,5 #Dies weist a, b 3,4 und 5 zu , bzw. c >>> a=b=c=3 #Dies weist a,b und c 3 zu Schauen wir uns zunächst die Entkapselung an: >>> mytuple=3,4,5 >>> mytuple> Jetzt entpacken wir diese Werte in die Variablen x, y, z: Sie können den Befehl edit mysite/setting.py verwenden, bei dem es sich um ein gewöhnliches Python-Modul handelt und die Modulebene die Django-Einstellungen darstellt. Django verwendet standardmäßig SQLite; dies ist für Django-Benutzer einfach, sodass keine weitere Installation erforderlich ist. Wenn Ihre Datenbankauswahl anders ist, müssen Sie die folgenden Schlüssel im DATABASE-Standardschlüssel verwenden, um sie an Ihre Datenbankverbindungseinstellungen anzupassen. Engine: Sie können „django.db.backends.sqlite3“, „django.db.backeneds.mysql“, „django.db.backends.postgresql_psycopg2“, „django.db.backends.oracle“ verwenden. Warten Sie, bis die Datenbank geändert wird. Name: Der Name der Datenbank. Wenn Sie SQLite als Datenbank verwenden, ist die Datenbank eine Datei auf Ihrem Computer und der Name sollte der vollständige absolute Pfad sein, einschließlich des Dateinamens der Datei. Wenn Sie nicht SQLite als Datenbank wählen, müssen Sie Einstellungen wie Passwort, Host, Benutzer usw. hinzufügen. Django verwendet SQLite als Standarddatenbank, die Daten als einzelne Dateien im Dateisystem speichert. Wenn Sie einen Datenbankserver haben – PostgreSQL, MySQL, Oracle, MSSQL – und diesen anstelle von SQLite verwenden möchten, dann verwenden Sie das Verwaltungstool der Datenbank, um eine neue Datenbank für Ihr Django-Projekt zu erstellen. So oder so, wenn Ihre (leere) Datenbank vorhanden ist, müssen Sie Django nur noch sagen, wie er sie verwenden soll. Dies ist die Quelle der Datei „settings.py“ des Projekts. Wir werden der Datei die folgenden Codezeilen hinzufügen: DATABASES = { 'default': {'ENGINE' : 'django .db.backends .sqlite3', 'NAME' : os.path.join(BASE_DIR, 'db.sqlite3'), } } Verwenden Sie das folgende URL-Format: http://webcache.googleusercontent.com/search?q=cache:URLGOESHERE Ersetzen Sie unbedingt „URLGOESHERE " Geben Sie die korrekte Webadresse der Seite oder Site ein, deren Cache Sie abrufen möchten, und überprüfen Sie die Uhrzeit. Um beispielsweise das Google Webcache-Alter von edureka.co anzuzeigen, würden Sie die folgende URL verwenden: http://webcache.googleusercontent.com/search?q=cache:edureka.co Die Map-Funktion führt die als erstes Argument angegebene Funktion aus, die alle Elemente der als zweites Argument angegebenen Iteration durchläuft. Wenn die angegebene Funktion mehr als ein Argument enthält, werden viele Iterationen angegeben. 37. Wie erhalte ich den Index der N größten Werte in einem NumPy-Array? Wir können den Index der N größten Werte in einem NumPy-Array mit dem folgenden Code erhalten: import numpy as np arr = np. array([1, 3, 2, 4, 5]) print(arr.argsort()[-3:][::-1]) Ausgabe [ 4 3 1 ] 38. Wie berechnet man Perzentile mit Python/NumPy? Wir können Perzentile mit dem folgenden Code berechnen numpy als np importieren a = np.array([1,2,3,4, 5] ) p = np.percentile(a, 50) #Gibt das 50. Perzentil zurück, z. B. Median print(p) Ausgabe 3 39. Was sind die Vorteile von NumPy-Arrays gegenüber (verschachtelten) Python-Listen? a. Python-Listen sind effiziente Allzweckcontainer. Sie unterstützen (ziemlich) effizientes Einfügen, Löschen, Anhängen und Verketten, und das Listenverständnis von Python macht sie einfach zu erstellen und zu bearbeiten. b. Einige Einschränkungen von Python-Listen: Sie unterstützen keine vektorisierten „vektorisierten“ Operationen wie elementweise Addition und Multiplikation, und die Tatsache, dass sie Objekte unterschiedlichen Typs enthalten können, bedeutet, dass Python jedes Element speichern muss Typinformationen und Typ-Dispatch-Code müssen ausgeführt werden, wenn an jedem Element gearbeitet wird. c. NumPy ist nicht nur effizienter; Sie erhalten viele Vektor- und Matrixoperationen kostenlos, was Ihnen manchmal unnötige Arbeit ersparen kann. d. NumPy-Arrays sind schneller, Sie können NumPy, FFT, Faltung, schnelle Suche, grundlegende Statistiken, lineare Algebra, Histogramm und andere integrierte Methoden verwenden. 40. Was ist der Unterschied zwischen NumPy und SciPy? a. In einer idealen Welt enthält NumPy nur Array-Datentypen und die grundlegendsten Operationen: Indizierung, Sortierung, Umformung, grundlegende Elementfunktionen usw. b. Der gesamte numerische Code wird in SciPy gespeichert. Ein wichtiges Ziel von NumPy ist jedoch die Kompatibilität. Daher versucht NumPy, alle von seinen Vorgängern unterstützten Funktionen beizubehalten. c. Daher enthält NumPy einige lineare Algebrafunktionen, obwohl sie eigentlich zu SciPy gehören. Unabhängig davon enthält SciPy umfassendere Versionen des linearen Algebra-Moduls sowie viele andere numerische Algorithmen. d. Wenn Sie Python für wissenschaftliche Berechnungen verwenden, sollten Sie NumPy und SciPy installieren. Die meisten neuen Funktionen gehören zu SciPy und nicht zu NumPy. 41. Wie löst man das chinesische Ausgabeproblem des Python-Programms? Verwenden Sie Codierung und Decodierung, wie zum Beispiel: import os.path import xlrd,sys Filename='/home/tom /Desktop/1234.xls' wenn nicht os.path.isfile(Filename): NameError auslösen, „%s ist kein gültiger Dateiname“ %Filename bk =xlrd.open_workbook(Filename) shxrange=range(bk.nsheets) shxrange drucken für x in shxrange: p=bk .sheets()[x].name.encode('utf-8′) print p.decode('utf-8′) Methode 2: in Fügen Sie reload(sys) am Anfang der Datei hinzu sys.setdefaultencoding('utf8′) 42. Lesen Sie den folgenden Code und was ist seine Ausgabe? Klasse A (Objekt): def go (self): print „go A go!“ def stop (self ): print „stop A stop!“ def pause (self): raise Exception („Not Implemented“) class B ( A): def go(self): super(B, self). go() print „go B go!“ class C(A): def go(self): super(C, selbst). go() print „go C go!“ def stop(self): super(C, self). stop() print „stop C stop!“ class D(B,C): def go(self): super( D, selbst). go() print „go D go!“ def stop(self): super(D, self). stop() print „stop D stop!“ def pause(self): print „wait D wait!“ class E( B, C): bestanden a = A() b = B() c = C() d = D() e = E() # Erklären Sie die Ausgabe des folgenden Codes a.go() b.go() c.go() d.go() e.go() a.stop() b.stop ( ) c.stop() d.stop() e.stop() a.pause() b.pause() c.pause() d.pause() e.pause() Antwort, die Ausgabe Ergebnis ist wie folgt. Die Form von Kommentaren wird ausgedrückt als: a.go() # go A go! b.go() # los A los! # los B los! c.go() # los A los! # los C los! d .go() # los A los! # los C los! # los B los! # go D go! e.go() # go A go! # go C go! # go B go! a. stop() # stop A stop! b.stop() # stop A stop! c. stop() # stop A stop! # stop C stop! d.stop() # stop A stop! # Stopp C Stopp! # stop D stop! e.stop() # stop A stop! a.pause() # … Ausnahme : Nicht implementiert b.pause() # … Ausnahme: Nicht implementiert c.pause() # … Ausnahme: Nicht implementiert d.pause() # warte D warte! e.pause() # …Ausnahme: Nicht implementiert 43. Die Verwendung eines Webbrowsers in Python einführen? Das Webbrowser-Modul bietet eine High-Level-Schnittstelle zum Anzeigen webbasierter Dokumente. In den meisten Fällen ist nur ein einfacher Aufruf der open()-Methode erforderlich. webbrowser definiert die folgende Ausnahme: Exception webbrowser.Error, diese Ausnahme wird ausgelöst, wenn ein Fehler in der Browsersteuerung auftritt webbrowser verfügt über die folgenden Methoden: webbrowser.open(url[, new=0[,autoraise=1]]) Diese Methode dient dazu, die URL im Standardbrowser anzuzeigen. Wenn new = 0, dann wird die URL angezeigt im selben Fenster „Öffnen“ Wenn „Neu“ = 1, wird ein neues Fenster geöffnet. Wenn „Autoraise“ = „True“, wird das Fenster automatisch vergrößert. webbrowser.open_new(url) Öffnen Sie ein neues Fenster im Standardbrowser, um die URL anzuzeigen. Andernfalls öffnen Sie die URL im einzigen Browserfenster webbrowser.open_new_tab (url) Öffnen Sie einen neuen Tab, um die URL im Standardbrowser anzuzeigen, ansonsten ist es dasselbe wie open_new() webbrowser.get([name]) Gibt ein Browserobjekt basierend auf dem Namen zurück. Wenn der Name leer ist, wird der Standardbrowser zurückgegeben. webbrowser.register(name, construtor[,instance]) Registrieren Sie einen Namen als Browser des Namens , wenn dieser Browsertyp registriert ist, kann mit der Methode get() abgerufen werden. 44. Was sind die Unterschiede zwischen Liste, Tupel, Diktat und Menge und in welchen Szenarien werden sie hauptsächlich verwendet? Definition: Liste: verknüpfte Liste, geordnete Elemente, Suche nach Index, eckige Klammern „[]“ verwenden Tupel: Tupel, Tupel zusammenführen Verschiedene Objekte und können nicht geändert werden. Sie werden über Indizes durchsucht und verwenden Klammern „()“; dict: Wörterbuch, Suche nach Schlüssel, keine Reihenfolge, Verwendung geschweift Klammern „{}“; set: Set, ungeordnet, Elemente erscheinen nur einmal, automatische Deduplizierung, verwenden Sie „set ([])“ ; Anwendungsszenarien: Liste, eine einfache Datensammlung, Sie können Indizes verwenden, einige Daten als Ganzes verwenden und nicht ändern; Daten, die mit Schlüsseln und Werten verknüpft sind; 🎜>eingestellt, Daten erscheinen nur einmal, es ist nur wichtig, ob die Daten erscheinen, nicht ihr Speicherort Code: mylist = [1, 2, 3, 4, 'Oh'] mytuple = (1, 2, 'Hallo', (4, 5)) mydict = { 'Wang' : 1, 'Hu' : 2, 'Liu' :4} myset = set (['Wang', 'Hu', 'Liu', 4,'Wang']) Antwort: Vergleich von 5 Methoden. 1. Die einfache Schrittweite beträgt -1, d. h. das Umdrehen der Zeichenfolge; 3 . Rekursive Methode, jedes Mal ein Zeichen ausgeben. 4 46. Welche der folgenden Anweisungen erstellt ein Wörterbuch? (Mehrere richtige Antworten möglich) Antwort: b, CD. Erstellen Sie ein Wörterbuch, indem Sie Schlüssel und Werte angeben. 47. Welches ist die Bodenaufteilung? erwähnt wurden: b) //; Zum Beispiel 5,0/2 = 2,5, 5,0//2 = 2 48. Was ist die maximal mögliche Länge einer Kennung? a) 31 Zeichen b) 63 Zeichen c) 79 Zeichen d) Keines der oben genannten Antwort: d) Keiner der oben genannten Bezeichner kann beliebig lang sein. 49. Warum wird von lokalen Variablennamen abgeraten, die mit einem Unterstrich beginnen? a) Sie werden verwendet, um private Variablen einer Klasse darzustellen b) Sie verwirren Interpreter c) Sie werden verwendet, um globale Variablen darzustellen d) Sie verlangsamen die Ausführung Antwort: a) Sie werden verwendet, um private Variablen einer Klasse darzustellen; da Python kein Konzept für private Variablen hat, werden führende Unterstriche verwendet, um Variablen darzustellen, auf die nicht zugegriffen werden kann von außerhalb der Klasse. 50. Welche der folgenden Aussagen ist ungültig? a) abc = 1.000.000 b) a b c = 1000 2000 3000 c) a, b, c = 1000, 2000, 3000 d) a_b_c = 1.000.000 Antwort: b) a b c = 1000 2000 3000; Leerzeichen sind in Variablennamen nicht zulässig. 51. Was ist die Ausgabe unten? versuchen Sie: if '1' != 1: raise "someError" else: print („someError ist nicht aufgetreten“) außer „someError“: print („someError ist aufgetreten“) a) someError ist aufgetreten b) someError ist nicht aufgetreten c) Ungültiger Code d) Keiner der oben genannten Antwort: c) Ungültiger Code muss von BaseException erben. Eine solche Vererbung gibt es hier nicht. 52. Angenommen, Liste1 ist [2,33,222,14,25], was ist Liste1[-1]? a) Fehler b) Nein c) 25 d) 2 Antwort: c) 25 ; Index -1 entspricht dem letzten Index in der Liste. 53. Um die Datei c:scores.txt zum Schreiben zu öffnen, verwenden wir: a) outfile = open("c:scores.txt", " r ") b) outfile = open ("c:\scores.txt", "w") c) outfile = open (file = "c:scores.txt", " r") d) outfile = open (file = "c:\scores.txt", "o") Antwort: b) Diese Position enthält doppelte Schrägstriche ($$, w wird verwendet, um anzuzeigen, dass eine Datei geschrieben wird >mit open("data.txt", "w") as f: if i > 2:break print f .closed a) Richtig b) Falsch c) Keine d) Fehler Antwort: a) Richtig; Bei Verwendung mit einer geöffneten Datei , stellt die WITH-Anweisung sicher, dass das Dateiobjekt geschlossen wird, wenn der With-Block beendet wird. a) Immer b) Wenn eine Ausnahme auftritt c) Wenn keine Ausnahme auftritt d) Wenn eine Ausnahme auftritt, bis außer Block Antwort: c) Wenn keine Ausnahme auftritt, führen Sie den else-Teil aus. Zwei Formen: Addition oder XOR; Code: a = 1 b = 2 a = a + b b = a - b a = a - b print ('a = {0}, b = {1}'.format (a,b)) a = a ^ b b = a ^ b a = a ^ b print ('a = {0}, b = {1 }'.format(a, b)) x = [0, 1] i = 0 i, x[i] = 1, 2 print(x)Druckergebnis: [0, 2], Python kann kontinuierliche Zuweisung verwenden, Von links nach rechts. g = lambda x, y=2, z : x + y**z g (1, z=10) = ? Ergebnis drucken: Ausnahme, Standardparameter können nur am Ende der formalen Parameterliste platziert werden und Standardparameter müssen bereitgestellt werden. Das Singleton-Muster ist ein häufig verwendetes Software-Designmuster. Es enthält in seiner Kernstruktur nur eine spezielle Klasse, die Singleton-Klasse genannt wird. Der Singleton-Modus kann sicherstellen, dass es nur eine Instanz einer Klasse im System gibt und dass die Instanz von außen leicht zugänglich ist, wodurch die Kontrolle über die Anzahl der Instanzen erleichtert und Systemressourcen gespart werden. Wenn nur ein Objekt einer bestimmten Klasse im System vorhanden sein soll, ist das Singleton-Muster die beste Lösung. __new__() wird vor __init__() aufgerufen und zum Generieren von Instanzobjekten verwendet. Mithilfe der Eigenschaften dieser Methode und Klassenattributen kann das Singleton-Muster des Entwurfsmusters implementiert werden. Der Singleton-Modus bezieht sich auf die Erstellung eines eindeutigen Objekts. Im Singleton-Modus entworfene Klassen können nur instanziiert werden. Denken Sie auf jeden Fall an 1 bis 2 Methoden. Der Interviewer hat Sie gebeten, es handschriftlich zu schreiben. Methode __new__ verwenden class Singleton(object):def __new__(cls, *args, **kw):if not hasattr(cls, '_instance ') : cls._instance = orig.__new__ (cls, *args, **kw) class MyClass (Singleton): ob = super (Borg,cls). __new__(cls, *args, **kw) ob.__dict__ = cls._state return ob Klasse MyClass2 (Borg): a = 1 Decorator-Version def singleton (cls): instances = {} def getinstance(*args, **kw): wenn cls nicht in Instanzen: instances[cls] = cls(*args, **kw) Instanzen zurückgeben[cls] getinstance zurückgeben @singleton Klasse MyClass: … Importmethode Als Python-Modul ist es ein natürlicher Singleton-Modus # mysingleton.py class My_Singleton (object): def foo (self): pass my_singleton = My_Singleton() # to use from mysingleton import my_singleton my_singleton.foo() 59. A und B liegen jeweils auf zwei Inseln. B ist krank und A hat die Medikamente, die B braucht. C hat ein Boot und eine abschließbare Truhe. C ist bereit, Dinge zwischen A und B zu transportieren, die Dinge können jedoch nur in Kartons untergebracht werden. Solange die Kiste entriegelt ist, wird C den Inhalt der Kiste stehlen, egal was sich in der Kiste befindet. Wenn A und B jeweils ein Schloss und einen Schlüssel haben, die nur ihr eigenes Schloss öffnen können, wie sollte A dann Dinge sicher an B liefern? Antwort: A legt das Medikament in die Schachtel und verschließt die Schachtel mit seinem eigenen Schloss. Nachdem B die Box erhalten hat, fügt er der Box sein eigenes Schloss hinzu. Nachdem die Kiste an A zurückgeschickt wurde, entfernt A sein eigenes Schloss. Wenn die Kiste an B geliefert wird, entfernt B sein eigenes Schloss und erhält das Medikament. 60. Es gibt 25 Pferde mit unterschiedlichen Geschwindigkeiten, aber die Geschwindigkeit jedes Pferdes ist ein fester Wert. Jetzt gibt es nur noch 5 Strecken und es gibt keine Möglichkeit, diese zu messen. Das bedeutet, dass Sie nur die relative Geschwindigkeit von bis zu 5 Pferden in jedem Rennen ermitteln können. Was ist die Mindestanzahl an Rennen, um die drei schnellsten Pferde unter den 25 zu finden? Antwort: Jedes Pferd muss mindestens eine Teilnahmechance haben, daher werden 25 Pferde in 5 Gruppen eingeteilt. Die ersten 5 Spiele sind unumgänglich. Als nächstes wird es leicht sein, den Champion zu finden. Die Champions jeder Gruppe können ein Spiel lang zusammen spielen (Spiel 6). Als letztes gilt es, den 2. und 3. Platz zu finden. Wir haben die Gruppen, in denen sie in den ersten fünf Spielen waren, entsprechend der im sechsten Spiel erzielten Rangliste als A, B, C, D und E benannt. Das heißt: Der Champion der Gruppe A ist der Erstplatzierte im 6. Rennen, der Champion der Gruppe B ist der Zweitplatzierte im 6. Rennen... Die 5 Pferde in jeder Gruppe werden entsprechend ihrer vorherigen Ergebnisse vom Schnellsten zum Langsamsten nummeriert : Gruppe A: 1, 2, 3, 4, 5 Gruppe B: 1, 2, 3, 4, 5 Gruppe C: 1, 2, 3, 4, 5 Gruppe D: 1, 2, 3, 4, 5 Gruppe E: 1, 2, 3, 4, 5 Was wir haben Anhand der aktuellen Informationen können wir wissen, welche Pferde vom 3. Platz ausgeschlossen wurden. Solange festgestellt werden kann, dass 3 oder mehr Pferde schneller sind als dieses Pferd, ist es ausgeschieden. Es ist ersichtlich, dass nur die 5 Pferde in der obigen Tabelle in Fettdruck Blau auf Rang 2 oder 3 stehen können. Das heißt: 2. und 3. Platz in Gruppe A; 1. und 2. Platz in Gruppe B und 1. Platz in Gruppe C. Nehmen Sie diese 5 Pferde für das 7. Spiel. Die beiden besten im 7. Spiel sind der 2. und 3. Platz unter den 25 Pferden. Daher gibt es insgesamt mindestens 7 Spiele. Das obige ist der detaillierte Inhalt von60 Fragen und Antworten für Python-Interviews ausgewählt! Eine Pflichtlektüre bei der Jobsuche nach dem neuen Jahr. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Verweisen Sie beim Erstellen einer Instanz den __dict__ aller Instanzen auf dasselbe Wörterbuch, damit sie dieselben Attribute und Methoden haben.
Klasse Borg(Objekt):
_state = {}
def __new__(cls, *args, **kw):