Bạn phát ốm với tất cả những thử thách của codegolf. Do đó, bạn quyết định viết một chương trình sẽ tự động đánh gôn một số mã Python cho bạn. Có 3 trường hợp thử nghiệm:
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)
Quy tắc:
Chương trình của bạn không được nhắm mục tiêu mã tôi đã đăng cụ thể và phải hoạt động với bất kỳ mã Python 2 nào. Tôi bảo lưu quyền thay đổi mã nguồn đang được mã hóa. Bạn có thể giả định rằng không có chuỗi nhiều dòng (vì vậy bạn không xây dựng trình phân tích cú pháp đầy đủ) và người dân địa phương () không được gọi.
Đầu ra của chương trình của bạn sẽ chạy theo cách giống hệt như mã nguồn ban đầu. (Cụ thể, nó phải tạo ra cùng một đầu ra. Tên biến và cấu trúc ngôn ngữ có thể được thay đổi, miễn là đầu ra vẫn giữ nguyên)
Bạn có thể sử dụng STDIO hoặc Tệp để thực hiện nhập / xuất mã nguồn.
Điểm của bạn sẽ là tổng số byte của đầu ra chương trình của bạn.
(Mã được liệt kê ở trên đã được lấy từ http://rosettacode.org/ theo Giấy phép Tài liệu Miễn phí GNU 1.2 )
if __name__ == '__main__':
sẽ ảnh hưởng đến hành vi trong một số bối cảnh nhưng không ảnh hưởng đến hành vi khác. Đối với một ví dụ khác, nếu đầu vào không được giả định rằng nó đọc một int từ stdin và ném một loại ngoại lệ nếu được đưa ra một thứ khác, thì đầu vào được đánh gôn có thể ném một loại ngoại lệ khác nếu được cung cấp một số nguyên không?
random_long_variable=0;print locals()
?