Tóm lược
Triển khai FizzBuzz trong Python, với ít mã thông báo nhất có thể.
Thử thách
Viết chương trình in các số thập phân từ 1 đến 100. Nhưng đối với bội số của ba bản in Fizz, thay vì số lượng và cho bội số của năm bản in Buzz Buzz. Đối với các số là bội số của cả ba và năm bản in FizzBuzz '. Các chương trình phải được viết bằng một số phiên bản của Python.
Để biết thêm chi tiết, xem 1, 2, Fizz, 4, Buzz
Chấm điểm
Điểm của bạn sẽ bằng số lượng nút trong cây cú pháp trừu tượng của mã của bạn, như được báo cáo bởi chương trình này cho Python 3 hoặc chương trình này cho Python 2 . Để chạy các chương trình, cung cấp tên tệp mã của bạn làm đối số dòng lệnh cho chương trình. Ví dụ:
python simple_counter.py fizzbuzz.py
Các chương trình này dựa trên mô-đun ast của Python . Nếu bạn có bất kỳ khó khăn, cho tôi biết.
Để ngăn các giải pháp tầm thường, chẳng hạn như thực hiện một chuỗi dài với chương trình thực tế hoặc mã hóa đầu ra, có một số hạn chế bổ sung:
Không có mã thông báo trong mã của bạn có thể dài hơn 15 ký tự. Các chương trình trên sẽ kiểm tra yêu cầu này cho bạn. Lưu ý rằng để dễ thực hiện, các chương trình trên sẽ tính các nhận xét dưới dạng mã thông báo.
Thực thi / đánh giá mã bị cấm.
Nếu bạn có câu hỏi là liệu cái gì được cho phép, hãy hỏi tôi.
Ghi điểm Heuristic
Các quy tắc sau đây thường đủ để tính điểm của chương trình của bạn:
Khối báo cáo là 1 điểm:
if
,for ... in ...
,while
,else
,, vvBáo cáo độc lập là 1 điểm:
print
bằng Python 2,break
,pass
vvBiến là 2 điểm
Literals đơn thẻ bài 1 điểm:
2131
,"Hello, world!"
,True
Hàm là 3 điểm (2 để sử dụng biến, thêm 1):
print
trong Python 3range
, v.v.Các nhà khai thác là 2 điểm:
+
,*
,%
,and
,not
,, vv=
là 1 điểmNhiệm vụ tăng cường là 2 điểm:
+=
,|=
vvDấu ngoặc đơn, thụt lề, vv là 0 điểm.
Một dòng chứa một biểu thức, trái ngược với một bài tập hoặc một biểu thức, là + 1 điểm.
Có mã ở tất cả là 1 điểm.
Thử thách:
Điểm thấp nhất sẽ thắng. Chúc may mắn!