Python ist heute die am schnellsten wachsende Programmiersprache. Es ist das dritte Jahr in Folge die am häufigsten nachgefragte Sprache. Entwickler, die es noch nicht verwenden, geben an, es lernen zu wollen. [1]
Der Grund für die Popularität von Python sind die vielen Versionen. [Bearbeiten] Es gibt in der Tat 116 Versionen von Python, darunter zwei Entwicklungsversionen.
Ihre Aufgabe ist es, eine Liste aller Python-Versionen auszugeben / auszudrucken, in welcher Reihenfolge Sie möchten und in welchem Format Sie möchten. Sie dürfen keine integrierten Funktionen verwenden, in denen diese Informationen gespeichert sind.
Sie sind frei , das Ausgabeformat zu wählen, aber jede Version auf dem Standardweg identifiziert werden muß: 1.1
, 2.3.0
, 2.7.10
und so weiter.
Die vollständige Liste 2 der durch Kommas getrennten Python-Versionen sehen Sie unten:
1.1, 1.2, 1.3, 1.4, 1.5, 1.5.1, 1.5.2, 1.6, 2.0, 2.0.1, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.2, 2.2.1, 2.2.2, 2.2.3, 2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9, 2.7, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9, 2.7.10, 2.7.11, 2.7.12, 2.7.13, 2.7.14, 2.7.15, 2.7.16, 3.0, 3.0.1, 3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.2 , 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7, 3.4.8, 3.4.9, 3.4.10, 3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7, 3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.6.4, 3.6.5, 3.6.6, 3.6.7, 3.6.8, 3.7.0, 3.7.1, 3.7.2, 3.7.3
oder nach Hauptversionen:
1.1
1.2
1.3
1.4
1.5, 1.5.1, 1.5.2
1.6
2.0, 2.0.1
2.1, 2.1.1, 2.1.2, 2.1.3
2.2, 2.2.1, 2.2.2, 2.2.3
2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5
2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4
2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4
2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9
2.7, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9, 2.7.10, 2.7.11, 2.7.12, 2.7.13, 2.7.14, 2.7.15, 2.7.16
3.0, 3.0.1
3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5
3.2, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6
3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7
3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7, 3.4.8, 3.4.9, 3.4.10
3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7
3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.6.4, 3.6.5, 3.6.6, 3.6.7, 3.6.8
3.7.0, 3.7.1, 3.7.2, 3.7.3
Die Abfrage ist eine festgelegte Ausgabe- Abfrage und einer Kolmogorov-Abfrage sehr ähnlich , mit der Ausnahme, dass das Ausgabeformat optional ist.
2 Die Liste stammt von der offiziellen Python-Website, hier und hier . Es gibt einige Versionen, die nicht enthalten sind, z. B. 0.9.0
.. 0.9.9
und 1.5.1p1
. Sie müssen die obige Liste verwenden, auch wenn Sie Versionen finden, die nicht enthalten sind. Ich habe mich entschlossen, mich an die offiziellen Listen zu halten, da sonst wahrscheinlich jemand eine 2.1.0.1.2
Version oder ähnliches finden würde .
quelle
1.1.0
(um alle Versionen 3 zu nummerieren) anstatt1.1
?Antworten:
JavaScript (ES6),
128 125124 BytesDank @ OlivierGrégoire 1 Byte gespeichert
Gibt jede Version in einer separaten Zeile aus. Sortiert von der höchsten zur niedrigsten Hauptversion und von der niedrigsten zur höchsten Revision.
Probieren Sie es online!
Wie?
Die Revision wird in der Variablen . Der Maximalwert von hängt von und wird in einer Nachschlagetabelle gespeichert, die in Base-36 codiert ist. Jede in dieser Tabelle bedeutet, dass diese Version überhaupt nicht veröffentlicht wurde.r≥0 r v 0
Außerdem verwenden wir den Test , um festzustellen, ob die Revision aufgenommen werden soll, auch wenn sie (beginnend mit Python 3.3.0).v>22 0
quelle
C # (Visual C # Interactive Compiler) , 109 Byte
Enthält viele nicht druckbare Elemente, deren Codes in Klammern angegeben sind. Dies ist ein volles Programm. Die Null-Bytes werden
\0
im TIO-Link durch s ersetzt , da mein Gerät sie nicht kopieren und einfügen kann.Dank @OlivierGregoire ein Byte gespart.
Probieren Sie es online! (Danke an @OlivierGregoire für das Implantieren der Null-Bytes)
Erläuterung
Jedes Zeichen in der Zeichenfolge gibt an, wie viele Nebenversionen sich an der Hauptposition befinden. Beispielsweise hat das Zeichen bei Index 5 (
ETX
) einen ASCII-Wert von drei und entspricht der Hauptversion1.5.x
mit drei Nebenversionen. Das Programm nimmt den ASCII-Wert des aktuellen Zeichens und wiederholt die Ausgabe der Nebenversionen, bevor es zur nächsten Hauptversion übergeht.Bei einigen Versionen gibt es Lücken zu den nächsten Versionen. Um dies zu beheben, enthält die Zeichenfolge null Bytes, sodass das Programm null Schleifen durchläuft, wenn es auf diese trifft.
Die nicht druckbare Zeichenfolge enthält die folgenden Zeichenwerte:
quelle
j="..."[k];j-->0;
, zumal die Reihenfolge keine Bedeutung hat. Können Sie auch den Größenunterschied zwischen dem TIO (115 Byte) und dem Eintrag (110 Byte) erklären?\0
s durch null Bytes ersetzt würde, wären es 110 BytesPyth, 52 Bytes
Probieren Sie es hier online aus .
Die Ausgabe ist eine verschachtelte Liste mit Elementen, die nach Haupt- und Nebenversion gruppiert sind. Es gibt eine leere Liste am Anfang der Ausgabe und eine weitere nach der Ausgabe
1.6
. Die vollständige Ausgabe lautet wie folgt:Wenn dies nicht akzeptabel ist
.n
, müssen Sie dem Code voranstellen , um die Ausgabe als reduzierte Liste zu einem Preis von 2 Byte zu erhalten.quelle
Java (JDK) , 134 Byte
Probieren Sie es online!
Die Versionen werden von der höchsten zur niedrigsten gedruckt.
Credits
quelle
(a>1|b>0)&c<a.valueOf(y,36)
kann seina>1|b>0&&c<a.valueOf(y,36)
undc<1&(a<3|b<3)?
kann seinc<1&&a<3|b<3?
, 2 Bytes zu sparen. Relevanter Java-Tipp - Abschnitt Bitweise und logische Prüfungen anstelle von Klammern/10d
kann sein*.1
int a=28
->int a=1
, und entfernen Sie die Bedingung in der for-Schleife. Fügen Sie dann ein hinzua++
, um 3 Bytes zu sparen. TIONetzhaut , 105 Bytes
Probieren Sie es online! Lose basierend auf @ Arnauld's Lösung. Erläuterung:
Fügen Sie die Zeichenfolge ein, die aus 11 Leerzeichen gefolgt von den angegebenen Zeichen besteht.
Listen Sie für jedes Zeichen das Suffix a
_
und seine Spaltennummer auf.Konvertieren Sie die drei Buchstaben in numerische Werte.
Konvertieren Sie die numerischen Werte in unary.
Verwenden Sie für jeden Wert bis zu dem angegebenen Wert diesen als Suffix für die Versionsnummer, und extrahieren Sie den Major und den Minor aus der Spaltennummer.
Löschen Sie das Null-Suffix für die ersten 16 Versionen, die eine haben.
quelle
Jelly , 51 Bytes
Probieren Sie es online!
Ein Niladic-Link, der eine Liste von Listen mit
.
getrennten Ganzzahlen ausgibt, gruppiert nach Hauptversion. Auf TIO gibt es einen Footer-Code, um diese hübsch auszudrucken.quelle
33 , 484 Bytes
Ich wollte es in meiner geisteskranken Sprache versuchen.
Es gibt jede für die Challenge erforderliche Python-Version aus, die durch Zeilenumbrüche begrenzt ist.
Hier ist eine kleine Erklärung.
quelle