kürzeste Python-Quine?
_='_=%r;print _%%_';print _%_
Ist dies die kürzeste python quine, oder kann es besser gemacht werden? Dies scheint zu verbessern, auf der alle Einträge auf Die Quine-Seite.
Ich bin nicht eingerechnet die triviale "leeres" Programm, und ich bin nicht zu zählen Terry Reedy ' s Vorlage die sus, weil das doppelte Anführungszeichen (falls das erlaubt ist, ist "hello world" ein quine? oder "'", für diese Angelegenheit?)
Kommentar zu dem Problem
Funktioniert nicht mit Python 3.x, durch die Art und Weise.
"kann es besser gemacht werden?" Obwohl diese Frage hat definitiv eine Antwort es ist nur schwer zu beantworten (es sei denn, die Antwort ist ja und du hast ein Gegenbeispiel). Wie soll jemand wissen, ohne zu testen, ALLE möglichen kürzere Programme?
@Howard: An einem gewissen Punkt, es sind nicht alle, dass viele von denen...
Für den Datensatz,
_='_=%r;print(_%%_)';print(_%_)
arbeitet in Python ist3. Ich würde es vorziehen, es zu schreiben, als
r= "r=%r;print r%%r"; print r%r
(für python2), obwohl. InformationsquelleAutor der Frage wim | 2011-06-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werde ich nur verlassen Sie hier (speichern unter exceptionQuine.py):
InformationsquelleAutor der Antwort Graa
Technisch ist die kürzeste Python quine ist die leere Datei. Abgesehen von diesem trivialen Fall:
Da-Python-print hängt automatisch einen Zeilenumbruch, der quine ist eigentlich
_='_=%r;print _%%_';print _%_\n
(wo\n
repräsentiert ein einzelnes Zeilenvorschubzeichen in die Datei).InformationsquelleAutor der Antwort Mechanical snail
Beide
und alles was mit import werden nicht gültig quines, weil ein quine per definition nicht nehmen jede Eingabe. Lesen einer externen Datei wird als unter input und somit zu einem quine kann nicht Datei Lesen -- einschließlich sich selbst.
Für die Aufnahme, technisch gesehen, die kürzeste quine in python ist eine leere Datei, aber das ist eine Art von Betrug auch.
InformationsquelleAutor der Antwort wintermute
In eine leicht nicht-wörtliche Ansatz, wobei 'kürzeste' zu bedeuten kurze in Bezug auf die Anzahl der Aussagen, als auch nur die Anzahl der Zeichen, ich habe eine hier, die nicht enthalten keine Semikolons.
In meinem Kopf dies behauptet, weil es alle Funktion sind, während andere mehrere. Hat jemand ein kürzerer so?
Edit: Benutzer flornquake aus die folgende Verbesserung (backticks für
repr()
zu ersetzenstr()
und rasieren 6 Zeichen):InformationsquelleAutor der Antwort postylem
Ich würde sagen:
Quelle
InformationsquelleAutor der Antwort manojlds
Sogar noch kürzer:
Und name der Datei
print(__file__[:-3]).py
(Quelle)Bearbeiten: eigentlich
namens
print(__file__)
funktioniert auch.InformationsquelleAutor der Antwort OlivierBlanvillain
Bin ich strikt gegen Ihre Lösung.
Die Formatierung prarameter
%
ist definitiv eine zu advanced high-level-Sprache-Funktion. Wenn solche Konstrukte erlaubt sind, würde ich sagen, dassimport
muss erlaubt sein, wie gut. Dann kann ich bauen eine kürzere Quine durch die Einführung einige andere high-level-Sprache zu konstruieren (was, BTW, ist viel weniger leistungsfähig als die%
Funktion, so ist es weniger fortgeschrittene):Hier ist ein Unix-shell-Skript für die Schaffung einer solchen
quine.py
- Datei und überprüfen Sie es wirklich funktioniert:Ausgänge
0
Ja, das ist gemogelt, wie mit
%
. Sorry.InformationsquelleAutor der Antwort Tino