Sie haben alle Codegolf-Herausforderungen satt. Daher beschließen Sie, ein Programm zu schreiben, das automatisch Python-Code für Sie spielt. Es gibt 3 Testfälle:
print quickSort([0,7,3,-1,8,10,57,2])
def quickSort(arr):
less = []
pivotList = []
more = []
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
for i in arr:
if i < pivot:
less.append(i)
elif i > pivot:
more.append(i)
else:
pivotList.append(i)
less = quickSort(less)
more = quickSort(more)
return less + pivotList + more
for i in xrange(1, 101):
if i % 15 == 0:
print "FizzBuzz"
elif i % 3 == 0:
print "Fizz"
elif i % 5 == 0:
print "Buzz"
else:
print i
from sys import argv
def randomGenerator(seed=1):
max_int32 = (1 << 31) - 1
seed = seed & max_int32
while True:
seed = (seed * 214013 + 2531011) & max_int32
yield seed >> 16
def deal(seed):
nc = 52
cards = range(nc - 1, -1, -1)
rnd = randomGenerator(seed)
for i, r in zip(range(nc), rnd):
j = (nc - 1) - r % (nc - i)
cards[i], cards[j] = cards[j], cards[i]
return cards
def show(cards):
l = ["A23456789TJQK"[c / 4] + "CDHS"[c % 4] for c in cards]
for i in range(0, len(cards), 8):
print " ", " ".join(l[i : i+8])
if __name__ == '__main__':
seed = int(argv[1]) if len(argv) == 2 else 11982
print "Hand", seed
deck = deal(seed)
show(deck)
Regeln:
Ihr Programm darf nicht auf den von mir angegebenen Code abzielen und sollte mit jedem Python 2-Code funktionieren. Ich behalte mir das Recht vor, den Quellcode zu ändern, der codegolfed wird. Sie können davon ausgehen, dass es keine mehrzeiligen Zeichenfolgen gibt (Sie haben also keinen vollständigen Parser erstellt), und dass locals () nicht aufgerufen wird.
Die Ausgabe Ihres Programms sollte auf die gleiche Weise wie der ursprüngliche Quellcode ausgeführt werden. (Es muss nämlich die gleiche Ausgabe erzeugen. Variablennamen und Sprachkonstrukte können geändert werden, solange die Ausgabe dieselbe bleibt.)
Sie können STDIO oder eine Datei verwenden, um den Quellcode einzugeben / auszugeben.
Ihre Punktzahl ist die Summe der Bytes der Programmausgabe.
(Der oben aufgeführte Code wurde von http://rosettacode.org/ unter der GNU Free Documentation License 1.2 entnommen. )
if __name__ == '__main__':
das Verhalten in einigen Kontexten beeinflussen würde, in anderen jedoch nicht. Wenn in einem anderen Beispiel die Eingabe "Ungolfed" davon ausgeht, dass sie ein Int aus "stdin" liest und einen Ausnahmetyp auslöst, wenn etwas anderes angegeben ist, kann die Eingabe "Golfed" dann einen anderen Ausnahmetyp auslösen, wenn eine Nicht-Ganzzahl angegeben ist?
random_long_variable=0;print locals()
?