Это старая версия Информатика/Архив/2019/9Д/ПравилаНаписанияПрограмм за 17.10.2018 19:34 под редакцией IlyaRayko.
Просмотр кода страницы Правила Написания Программ страница
== Требования к программам == Для того, чтобы комментарии были читаемыми, добавьте в начало кода следующую строку: %%(hl python) # -*- coding: utf-8 -*- %% === Преамбула === !!**Следующий текст постепенно приходит к окончательному виду. Пока тут остаётся этот комментарий текст ниже может быть неполным и противоречивым и следует пользоваться ((https://server.179.ru/wiki/?page=DMA_Fr_F_Bl_2d_N этими)).**!! Правила можно прочитать ((https://server.179.ru/tasks/python/2021d/code_style.html тут)). Сформулированные правила базируются на следующих документах: 1. PEP20. The Zen of Python (Дзен Питона). Если Вы программируете как-то иначе, то скорее всего Вы программируете не на Python. ((https://www.python.org/dev/peps/pep-0020/ Оригинал)) и ((https://tyapk.ru/blog/post/the-zen-of-python перевод)). 1. Общешкольные правила оформления программ. Если угодно, корпоративная этика. Сравнивать можно с ((https://server.179.ru/wiki/?page=DMA_Fr_F_Bl_2d_N этими)) и ((https://server.179.ru/wiki/?page=d_WZ_Ck_F7_1g_84_6 этими)). 1. PEP8. Style Guide for Python Code (Руководство по стилю кода на Python). Ejudge автоматически проверяет сдаваемые код на соответствие с этим руководством. Для автоматической проверки можно использовать утилиту ##pycodestyle## (иногда она распространяется под старым именем ##pep8##). Ejudge запускает её так: %% pep8.py -r --show-source --ignore=W391,E251,E501,W292,W291,W293 %% ((https://www.python.org/dev/peps/pep-0008/ Оригинал)) и ((https://very-good-academic-fashion-translations-of-all-peps.com перевод)). 1. PEP257. Docstring Conventions (Соглашение о строках с документацией). Регулируют правила оформления ##docstrings##. Это тот самый текст, который выводить функция ##help##. ((https://www.python.org/dev/peps/pep-0257/ Оригинал)) и ((https://very-good-academic-fashion-translations-of-all-peps.com перевод)). 1. PEP484. Function Annotations (Аннотации функций). Регламентирует аннотации к функциям. Поскольку они обязательны для **ВСЕХ** функций, то стоит ознакомиться и не забывать. ((https://www.python.org/dev/peps/pep-0484/ Оригинал)) и ((https://very-good-academic-fashion-translations-of-all-peps.com перевод)). 1. PEP526. Syntax for Variable Annotations (Аннотации переменных). Аналогичен PEP484, но для переменных. Имеет смысл только для длинных программ. ((https://www.python.org/dev/peps/pep-0526/ Оригинал)) и ((https://very-good-academic-fashion-translations-of-all-peps.com перевод)). 1. ((https://www.gnu.org/prep/standards/standards.html Правила написания кода проекта GNU.)) Большой сложный документ, охватывающий почти все возможные и невозможные случаи. Основной минус: они написаны для C/C++, поэтому некоторые технические детали к нам не относятся. Стоит обратить внимание на разделы ((https://www.gnu.org/prep/standards/standards.html#Semantics 4.2)), ((https://www.gnu.org/prep/standards/standards.html#Errors 4.4)), ((https://www.gnu.org/prep/standards/standards.html#Memory-Usage 4.11)), ((https://www.gnu.org/prep/standards/standards.html#File-Usage 4.12)), ((https://www.gnu.org/prep/standards/standards.html#Formatting 5.1)), ((https://www.gnu.org/prep/standards/standards.html#Comments 5.2)), ((https://www.gnu.org/prep/standards/standards.html#Names 5.4)), ((https://www.gnu.org/prep/standards/standards.html#Doc-Strings-and-Manuals 6.2)). Так же советую обратить внимание на следующие утилиты: ((https://docs.python.org/3.5/library/pdb.html pdb)), ((https://www.pylint.org/ pylint)), ((http://flake8.pycqa.org/en/latest/ flake)).