Помимо сформулированных ниже правил, программы должны соответствовать документу PEP8: Style Guide for Python Code из официальной документации языка Python. При сдаче задачи в ejudge проводится автоматическая проверка на соответствие программы PEP8.
Величина отступа – четыре пробела. Использование символа табуляции (символа, с кодом 9) запрещается.
Функции должны отделяться пустыми строками. Отдельные смысловые блоки в программе должны отделяться пустыми строками.
Имена переменных, функций, типов должны быть осмысленными и отражать назначение. Слишком длинные имена, однако, не рекомендуются. В именах допускаются сокращения, которые не затрудняют понимание имени и назначения функций и переменных.
Допускается использование односложных имен переменных для счетчиков (i, j, k), а также если это имя фигурирует в условии задачи (N, M, K, L).
В именах должны использоваться только английские слова. Транслитерации русских слов не допускаются. Запрещается использование символов, отличных от латинских букв, цифр и символа подчеркивания.
Если имя переменной или функции состоит из нескольких слов, то они должны разделяться символом подчеркивания или заглавными буквами. Например:
CalcSqrt – допустимо
calc_sqrt – допустимо
calculate_square_root – допустимо, но нежелательно (слишком длинное имя)
vychislenie_kornya – недопустимо (используются русские имена)
f – недопустимо (непонятно назначение функции)
Имена констант записываются полностью заглавными буквами. Если имя константы состоит из нескольких слов, для их разделения используются подчеркивания. Например, EPSILON, MAX_SIZE.
Имена массивов и названия типов структур должны записываться с заглавной буквы.
В одной строчке записывается одна арифметическая операция. Например:
a = b b = c
Бинарные операции разделяются пробелом. После запятой ставится пробел. Между именем функции и скобками пробел не ставится, с внутренней стороны скобок пробелы не ставятся
a = b + 2 * c a = (b + 2) * c print(a, b, sep = "")
Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while i < 179 или c = c + 32 недопустима.
Величина отступа – четыре пробела. Использование символа табуляции (символа, с кодом 9) запрещается.
Функции должны отделяться пустыми строками. Отдельные смысловые блоки в программе должны отделяться пустыми строками.
Имена переменных, функций, типов должны быть осмысленными и отражать назначение. Слишком длинные имена, однако, не рекомендуются. В именах допускаются сокращения, которые не затрудняют понимание имени и назначения функций и переменных.
Допускается использование односложных имен переменных для счетчиков (i, j, k), а также если это имя фигурирует в условии задачи (N, M, K, L).
В именах должны использоваться только английские слова. Транслитерации русских слов не допускаются.
Если имя переменной или функции состоит из нескольких слов, то они должны разделяться символом подчеркивания или заглавными буквами. Например:
CalcSqrt – допустимо
calc_sqrt – допустимо
calculate_square_root – допустимо, но нежелательно (слишком длинное имя)
vychislenie_kornya – недопустимо (используются русские имена)
f – недопустимо (непонятно назначение функции)
Имена констант записываются полностью заглавными буквами. Если имя константы состоит из нескольких слов, для их разделения используются подчеркивания. Например, EPSILON, MAX_SIZE.
Имена массивов и названия типов структур должны записываться с заглавной буквы.
В одной строчке записывается одна арифметическая операция. Например:
a = b; b = c;
Бинарные операции разделяются пробелом. После запятой и после точки с запятой в цикле for ставится пробел. Между именем функции и скобками пробел не ставится, с внутренней стороны скобок пробелы не ставятся
a = b + 2 * c; a = (b + 2) * c; x = power(a, n);
Оператор if без else записывается так:
if (test) { statements... }
Оператор if c else записывается так:
if (test) { statements... } else { statements... }
Последовательность if ... else if ... else if ... else записывается так:
if (test1) { statements... } else if (test2) { statements... } else { statements... }
while (test) { statements... }
do { statements... } while (test);
for (int i = 0; i < n; ++i) { statements... }
struct Person { string Name; int Age; };
double power(double a, int n) { statements... }
Блоки инструкций ветвления и цикла всегда заключаются в фигурные скобочки, даже если они состоят из одной инструкции.
Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while (i < 179) недопустима.
Все сообщения об ошибках, предупреждения, отладочные сообщения и прочая диагностическая информация, не являющаяся результатом работы программы в предположении корректных входных данных, должна выводиться на стандартный поток ошибок stderr, то есть примерно так:
cerr << "Неверные входные данные" << endl;
При выводе результата работы на стандартный поток вывода или в текстовый файл вывод должен заканчиваться символом перехода на новую строку. Исключением являются программы, выполняющие посимвольную обработку потока данных.
Источники:
http://unicorn.cmc.msu.ru/3sem/style.shtml
http://ejudge.179.ru/archive/2009/August/C/formatting.html