Это старая версия Информатика/Архив/2019/9Д/ПравилаНаписанияПрограмм за 17.10.2018 19:34:42.
Правила Написания Программ
Требования к программам
Для того, чтобы комментарии были читаемыми, добавьте в начало кода следующую строку:
# -*- coding: utf-8 -*-
Преамбула
Следующий текст постепенно приходит к окончательному виду. Пока тут остаётся этот комментарий текст ниже может быть неполным и противоречивым и следует пользоваться этими.
Правила можно прочитать тут.
Сформулированные правила базируются на следующих документах:
- PEP20. The Zen of Python (Дзен Питона). Если Вы программируете как-то иначе, то скорее всего Вы программируете не на Python. Оригинал и перевод.
- Общешкольные правила оформления программ. Если угодно, корпоративная этика. Сравнивать можно с этими и этими.
- PEP8. Style Guide for Python Code (Руководство по стилю кода на Python). Ejudge автоматически проверяет сдаваемые код на соответствие с этим руководством. Для автоматической проверки можно использовать утилиту
pycodestyle
(иногда она распространяется под старым именемpep8
). Ejudge запускает её так:pep8.py -r --show-source --ignore=W391,E251,E501,W292,W291,W293
Оригинал и перевод. - PEP257. Docstring Conventions (Соглашение о строках с документацией). Регулируют правила оформления
docstrings
. Это тот самый текст, который выводить функцияhelp
. Оригинал и перевод. - PEP484. Function Annotations (Аннотации функций). Регламентирует аннотации к функциям. Поскольку они обязательны для ВСЕХ функций, то стоит ознакомиться и не забывать. Оригинал и перевод.
- PEP526. Syntax for Variable Annotations (Аннотации переменных). Аналогичен PEP484, но для переменных. Имеет смысл только для длинных программ. Оригинал и перевод.
- Правила написания кода проекта GNU. Большой сложный документ, охватывающий почти все возможные и невозможные случаи. Основной минус: они написаны для C/C++, поэтому некоторые технические детали к нам не относятся. Стоит обратить внимание на разделы 4.2, 4.4, 4.11, 4.12, 5.1, 5.2, 5.4, 6.2.
Так же советую обратить внимание на следующие утилиты: pdb, pylint, flake.