Типичные ошибки и рекомендации к программам на Python в курсе "парадигмы программирования"

Материал из SEWiki
(перенаправлено с «Типичных ошибок»)
Перейти к: навигация, поиск

Типичные ошибки

Наличие хотя бы одной типичной ошибки в программе дает право преподавателю считать работу не выполненой.

Список:

  1. Наличие синтаксических ошибок - используются конструкции, несуществующие в языке
  2. Код написан для Python 2.x (используйте 3.x)
  3. Использование счетчика в цикле, когда достаточно итерации по элементам. Пример for i in range(len(lst)) вместо for lst_elem in lst
  4. Смена мест аргументов командной строки приводит к некорректной работе программы. Пример: python reverse_file.py --if c:\in.txt --of c:\out.txt и python reverse_file.py --of c:\out.txt --if c:\in.txt - должны работать одинаково. Если в задании уже реализована работа с аргументами командной строки, то ошибкой не является
  5. Открытие файлов (open(path, mode)) с излишним mode - не открывайте файл на чтение и запись, если достаточно только для чтения
  6. Не закрытие файла (функция close() у переменной файла) после завершения работы с ним
  7. Имена переменных, не говорящие об их использовании в программе. Пример: вместо переменной f для входного файла, используйте input_file
  8. Имена функций, не говорящие о том, что они делают. (пример: вместо названия функции, переворачивающей строку, fun1 используем название reverse_str)
  9. Все данные, необходимые для работы функции, должны передаваться ей в виде параметров. Если все-так используете глобальные переменные, то необходимость использования глобальных переменных нужно доказать при помощи комментария (#) возле определения глобальной переменной.
  10. В коде программы не должно быть более 2х скопированных (одинаковых) строк кода. Выносите одинаковые строчки в отдельные функции. Если все же оставляете скопированными, то напишите комментарий почему вы так делаете.
  11. Весь ваш код (как правило тестовый), непосредственно не решающий задачу должен помещаться под условное исполнение "if __name__ == '__main__':".

Рекомендации

Не являются обязательными.

  1. Старайтесь разные части функциональности программы выносить в отдельные функции, а не писать код, который выполняет сразу всю работу. Пример: отдельная функция для переворачивания строки, принимающия на вход строку, которую нужно перевернуть, и возвращающая перевернутую строку.
  2. Можно вместе с решением прислать один из файлов, на котором вы тестировали. Это поможет помочь проще решить спорные ситуации, если они возникнут.
  3. Не используйте имена переменных и функций, совпадающие с именами стандартных функций и т.п. Python3. Пример: list, set, dict. Проверить является ли имя стандартным можно набрав его в python -i (интерактивные режим >>>). Если Python пишет ошибку, то имя не является стандартным.