Python-Quine

Zeeshan Afridi 21 Juni 2023
  1. Führen Sie Python Quine aus
  2. Abschluss
Python-Quine

Ein Quine ist ein Computerprogramm, das seinen Quellcode als Ausgabe erzeugt. Das Programm nimmt keine Eingaben entgegen und gibt eine Kopie seines Quellcodes aus.

Quines sind insofern interessant, als sie dem eigentlichen Zweck der Programmierung zu widersprechen scheinen, der darin besteht, eine Ausgabe basierend auf einer Eingabe zu erzeugen. Quines kann in bestimmten Situationen hilfreich sein, beispielsweise wenn Sie eine Kopie des Quellcodes Ihres Programms generieren müssen.

Führen Sie Python Quine aus

Das Erstellen einer Quine ist nicht besonders schwierig, erfordert jedoch ein wenig Überlegung. Die Grundidee besteht darin, die eingebaute Funktionalität der Programmiersprache zu verwenden, um den Quellcode des Programms auszugeben.

In Python können Sie die eingebaute Funktion repr verwenden, um den Quellcode eines bestimmten Objekts auszugeben.

Natürlich wird der einfache Aufruf von repr im Quellcode des Programms keine gültige Quine erzeugen, da die Ausgabe auch die repr-Funktion selbst enthält. Um dies zu umgehen, können Sie mit ein wenig Trickserei einen selbstreferenzierenden String erstellen, der den Prozess repr nicht enthält.

Sobald Sie eine selbstreferenzierende Zeichenfolge haben, können Sie sie ausdrucken, um eine gültige Quine zu erstellen, und das ist alles! Sie können ein Programm mit einer Kopie seines Quellcodes mit nur einem kurzen Code erstellen.

Codebeispiel:

print((lambda s: s % s)("print((lambda s:s%%s)(%r))"))
print((_ := "print((_:=%r)%%_)") % _)
exec(s := 'print("exec(s:=%r)"%s)')

Ausgang:

print((lambda s:s%s)('print((lambda s:s%%s)(%r))'))
print((_:='print((_:=%r)%%_)')%_)
exec(s:='print("exec(s:=%r)"%s)')

Abschluss

Ein Quine ist ein Programm, das verwendet wird, um Ausgaben seines Quellcodes zu erstellen. Der Name kommt von dem Wort “Zitat”, was bedeutet, etwas wörtlich zu wiederholen.

Quines werden als Test für die Fähigkeit einer Programmiersprache verwendet, selbstreferenziellen Code zu verarbeiten. In Python ist eine Quine relativ einfach zu schreiben.

Alles, was Sie wissen sollten, ist, Ihren Code in Anführungszeichen zu setzen und dann die print-Anweisung zu verwenden, um den Code auszugeben.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn