colors.rgb („niebieski”) zwraca „# 0000FF”. colors.rgb („żółtawy niebieski”) daje NaN. colors.sort () daje „tęczę”
Korzystając z reguł określonych w obrazie i jego tekście tytułowym (cytowanym tutaj), stwórz program, który akceptuje wszystkie podane dane wejściowe i wyświetla odpowiednie dane wyjściowe.
Dane wejściowe można pobierać za pomocą stdin lub najbliższego odpowiednika. Powinien być wiersz podobny
[n]>
do wpisania go, in
zwiększa się o 1 każde polecenie. Powinien zacząć od 1.Wynik powinien zostać wyświetlony przy użyciu standardowego lub najbliższego odpowiednika. W
=>
każdym wierszu wyniku powinien znajdować się znak .
Wszystkie 13 warunków plus 3 w tytule (cytowane) muszą działać.
To jest golf golfowy, więc wygrywa najkrótsza odpowiedź.
10.5
?n
zwiększyć o 1? Nie to robi komiks ... ;-)Odpowiedzi:
Python 3,
700 698 697 689 683 639611Tabs jako wcięcie.
Ponieważ używa tego samego, z wyjątkiem tego, że nie możesz Ctrl + C. Ctrl-Z i zabij %% działają jednak
Niektóre warunki są uogólnione, a inne będą działać tylko przy dokładnym wprowadzeniu danych.
A+"B"
będzie działać z każdym A i B nie tylko wtedyA == B
"A"+[]
będzie działać dla dowolnego A, który można przekonwertować na liczbę całkowitą (zawiera ciąg szesnastkowy i ciąg binarny, np. 0xff i 0b01010)(A/0)
będzie działać dla dowolnej przyczyny ewidentnej A.DivideByZeroError
która jest obsługiwana w wyjątku(A/0)+B
będzie działać z dowolnym A lub B.literal_eval
(E) podnosi błąd.""+""
działa tylko dla znaku +. Cokolwiek innego wydrukuje NaN, NaP lub NaN.00 ...[A, B, C]+D
działa poprzez sprawdzenie tegoD == C+1
tak będzie działać dla dowolnej długości listy i dowolnych liczb.2/(2-(3/2+1/2))
Wszystko, co nie do analizowania, który ma-
literę A+
gdzieś po wyświetli NaN.000 ... 13RANGE(" ")
Mocno zakodowane+A
będzie działać dla każdego A. Ouputs"current_line_number+A"
A+A
działa dla każdego A, o ile są one takie same i są typami pythonów typu bulitinRANGE(1,5)
Mocno zakodowane.FLOOR(A)
działa dla każdego A.colors.rgb("blue")
Lstrip w eval zmienia to, wgb("blue")
co ma zakodowaną odpowiedź.colors.rgb("yellowish blue")
Lstrip w eval zamienia to, wgb("yellowish blue")
którym próbuje użyć nieistniejącej zmiennej, jeśliy
jest obecna w argumentacji, powodując błąd, który wyjątek zamienia się w NaNcolors.sort()
Lstrip zamienia to w twardąt()
odpowiedź.Brainsteel wskazał na błąd w moim założeniu dotyczącym reguły 10.
źródło
RANGE(" ")
to zakres znaków od znaku podwójnego cudzysłowu \ x22 do znaku spacji \ x20 i odwrotnie.2
na4
linię 11, 2 ma teraz 4, a 12 ma teraz 14. Dotyczy to również numerów linii.Python, 1110 bajtów
Przeciążenie operatora nie jest złe, prawda?
Moim celem nie było tyle wygranej (oczywiście), co uczynienie go tak ogólnym, jak to możliwe. Bardzo mało jest zakodowanych na stałe. Próbować takich rzeczy
RANGE(10)
,9*1
iRANGE("A")
,(2/0)+14
i"123"
dla wyników zabawy!Oto przykładowa sesja:
źródło
C, 412 bajtów
Jest to zasadniczo zakodowane, ale we wszystkich dotychczasowych odpowiedziach czegoś brakowało ...
Wydajność:
źródło
Python 3, 298
Wszystko jest zakodowane na stałe, ale dane wejściowe są przekształcane w liczbę, która jest następnie konwertowana na ciąg znaków i przeglądana w dużym ciągu, który zawiera wszystkie te liczby, a następnie ich odpowiedzi.
źródło
Python 3,
542484 bajtówPonieważ nie było wzmianki o absolutnym kodowaniu na stałe, oto moje rozwiązanie.
źródło
"2+\"2\""
staje się'2+"2"'
. Licznik importu można również usunąć, jeśli dodasz zmienną licznika.