colors.rgb ("blue") ergibt "# 0000FF". colors.rgb ("gelblich blau") ergibt NaN. colors.sort () liefert "rainbow"
Erstellen Sie unter Verwendung der im Bild festgelegten Regeln und des Titeltexts (hier zitiert) ein Programm, das alle angegebenen Eingaben akzeptiert und die entsprechenden Ausgaben anzeigt.
Die Eingabe kann mit stdin oder einem äquivalenten Wert erfolgen. Es sollte eine Zeile geben,
[n]>
in die Sie es eingeben können, und sien
wird bei jedem Befehl um 1 erhöht. Es sollte um 1 beginnen.Das Ergebnis sollte mit stdout oder einem gleichwertigen Wert angezeigt werden. In
=>
jeder Ausgabezeile sollte ein vorhanden sein.
Alle 13 Bedingungen plus die 3 im Titel (zitiert) müssen funktionieren.
Dies ist Codegolf, also gewinnt die kürzeste Antwort.
10.5
?n
um 1 erhöhen? Das ist nicht das, was der Comic macht ... ;-)Antworten:
Python 3,
700 698 697 689 683 639611Tabulatoren als Einzug.
Da dies ein nacktes verwendet, können Sie es nicht Strg-C. Strg-Z und Kill %% funktionieren jedoch
Einige der Bedingungen sind verallgemeinert und andere funktionieren nur mit genauen Eingaben.
A+"B"
funktioniert mit jedem A und B nicht nur wennA == B
"A"+[]
funktioniert für jedes A, das in ein int konvertiert werden kann (einschließlich hexadezimaler und binärer Zeichenfolgen, z. B. 0xff und 0b01010)(A/0)
funktioniert für alle A, Eval Ursachen,DivideByZeroError
die in der Ausnahme behandelt werden(A/0)+B
funktioniert mit jedem A oder B.literal_eval
(E) wirft einen Fehler auf.""+""
funktioniert nur für das + Zeichen. Alles andere druckt NaN, NaP oder NaN.00 ...[A, B, C]+D
Dies funktioniert, indem überprüft wird, obD == C+1
dies für eine beliebige Länge der Liste und für beliebige Zahlen funktioniert.2/(2-(3/2+1/2))
, Alles, was nicht-
mit+
irgendwo danach geparst werden kann, gibt NaN.000 ... 13 ausRANGE(" ")
Hardcoded+A
funktioniert für alle A. Ouputs"current_line_number+A"
A+A
funktioniert für jedes A, solange sie gleich sind und vom Typ Bulitin Python sindRANGE(1,5)
Hardcoded.FLOOR(A)
funktioniert für jede A.colors.rgb("blue")
Der lstrip in eval schaltet dies um, ingb("blue")
dem eine fest codierte Antwort vorliegt .colors.rgb("yellowish blue")
Der lstrip in eval dreht dies um,gb("yellowish blue")
wobei versucht wird, eine nicht existierende Variable zu verwenden, wenny
sie in der Argumentation vorhanden ist, was einen Fehler verursacht, der vom except in NaN umgewandelt wirdcolors.sort()
Der lstrip wandelt dies int()
eine fest codierte Antwort um.Brainsteel wies auf einen Fehler in meiner Annahme für Regel 10 hin.
quelle
RANGE(" ")
ist ein Bereich von Zeichen vom doppelten Anführungszeichen \ x22 bis zum Leerzeichen \ x20 und zurück.2
auf4
11 in Zeile 2 ist nun auf 4 und 12 ist jetzt 14. Dies gilt auch für die Zeilennummern.Python, 1110 Bytes
Bedienerüberladung ist nicht böse, oder?
Mein Ziel war (offensichtlich) nicht so viel zu gewinnen, da es es so allgemein wie möglich macht. Sehr wenig ist fest codiert. Versuchen Sie solche Sachen
RANGE(10)
,9*1
undRANGE("A")
,(2/0)+14
und"123"
für Spaß Ergebnisse!Hier ist eine Beispielsitzung:
quelle
C 412 Bytes
Dies ist im Grunde genommen hartcodiert, aber allen anderen Antworten fehlte bisher etwas ...
Ausgabe:
quelle
Python 3, 298
Alles ist fest codiert, aber die Eingabe wird in eine Zahl umgewandelt, die dann in eine Zeichenfolge umgewandelt und in einer großen Zeichenfolge nachgeschlagen wird, die alle diese Zahlen enthält, gefolgt von ihren Antworten.
quelle
Python 3,
542484 BytesDa von absoluter Hardcodierung keine Rede war, hier meine Lösung.
quelle
"2+\"2\""
wird'2+"2"'
. Der Import von count kann auch entfernt werden, wenn Sie eine Zählervariable hinzufügen.