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