Резюме
Реализуйте FizzBuzz в Python, используя как можно меньше токенов.
Вызов
Напишите программу, которая печатает десятичные числа от 1 до 100 включительно. Но для кратных трех выведите «Fizz» вместо числа, а для кратных пяти - «Buzz». Для чисел, кратных трем и пяти, выведите «FizzBuzz». Программы должны быть написаны на какой-то версии Python.
Для получения более подробной информации см. 1, 2, Fizz, 4, Buzz
счет
Ваша оценка будет равна количеству узлов в абстрактном синтаксическом дереве вашего кода, как сообщается этой программой для Python 3 или этой программой для Python 2 . Чтобы запустить программы, укажите имя файла вашего кода в качестве аргумента командной строки для программы. Например:
python simple_counter.py fizzbuzz.py
Эти программы основаны на Ast модуле Python . Если у вас возникнут трудности, дайте мне знать.
Чтобы предотвратить тривиальные решения, такие как выполнение длинной строки с реальной программой или жесткое кодирование вывода, существуют некоторые дополнительные ограничения:
Никакой токен в вашем коде не может быть длиннее 15 символов. Вышеуказанные программы проверит это требование для вас. Обратите внимание, что для простоты реализации вышеупомянутые программы считают комментарии как токены.
Выполнение / оценка кода запрещена.
Если у вас есть вопросы относительно того, разрешено ли что-то, спросите меня.
Скоринг эвристики
Следующие правила, как правило, достаточно для расчета балла вашей программы:
Заявления блока 1 точек:
if
,for ... in ...
,while
,else
и т.д.Отдельные заявления 1 пункт:
print
в Python 2break
,pass
и т.д.Переменные 2 балла
Single-токены литералы 1 точка:
2131
,"Hello, world!"
,True
Функции - это 3 точки (2 для использования переменной, 1 дополнительная):
print
в Python 3range
и т. Д.Операторы 2 точки:
+
,*
,%
,and
,not
и т.д.=
это 1 баллДополненная задание 2 балла:
+=
,|=
и т.д.Круглые скобки, отступы и т. Д. - 0 баллов.
Строка, содержащая выражение, в отличие от присваивания или выражения, равна + 1 балл.
Наличие кода вообще 1 балл.
Вызов:
Самый низкий балл побеждает. Удачи!