您已经厌倦了所有的代码高尔夫挑战。因此,您决定编写一个程序,该程序将自动为您编写一些Python代码。有3个测试用例:
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)
规则:
您的程序不得以我专门发布的代码为目标,并且应与任何Python 2代码一起使用。我保留更改被编码的源代码的权利。您可能会假设没有多行字符串(因此您没有构建完整的解析器),并且未调用locals()。
程序的输出应以与原始源代码相同的方式运行。(即,它必须产生相同的输出。只要输出保持不变,就可以更改变量名称和语言结构)
您可以使用STDIO或文件来进行源代码的输入/输出。
您的分数将是程序输出字节的总和。
(上面列出的代码是根据GNU自由文档许可1.2从http://rosettacode.org/ 获得的)
if __name__ == '__main__':
会在某些情况下影响行为,但在其他情况下不会。再举一个例子,如果非高尔夫输入假设它从stdin读取一个int值,并且在给出其他东西的情况下抛出一种异常,那么,如果高尔夫输入使用了非整数的输入,它会抛出另一种异常吗?
random_long_variable=0;print locals()
呢?