Несколько месяцев назад я начал заниматься Питоном. Первые пробные шаги в конце концов вылились в первую полноценную программу. Она, конечно, выполняет синтетические функции, но зато работает. И, что для меня самое интересное - ей, за исключением одного поля, крайне сложно подсунуть неверные данные. Собственно, весь полезный код обёрнут в кучу проверок правильности вводимых данных.
Итак, прошу любить и жаловать: Employee 1.0!
Написана кривым кодом, в котором сходные вещи иногда реализованы по-разному, присутствует куча костылей, мало комментариев и много неоптимизированных функций. Но оно работает, и работает именно так, как я этого хочу. Без компромиссов, без возможности для пользователя выбрать заведомо недопустимые значения и получить заведомо ошибочные результаты (за исключением файла с данными, который не проверяется никак. Об этом есть упоминание в документации).
Всё описание находится собственно в коде, в разделе для документаций (есть в питоновских скриптах такая специальная возможность - выделять строки документации, которые потом могут быть при желании вызваны при помощи специальной функции после импорта модуля). Перед применением обязательно ознакомиться с тем, что написано в основном файле - enter_employee.py. Это поможет понять, что же делает программа, и избежать ошибок при попытке её запуска в неподходящей среде. Если кому интересно - берите, смотрите, пишите баг-репорты! :) Так как программа являлась отладочной площадкой, многое из реализованного в ней, по сути, изучалось в процессе написания. Отсюда и куча сомнительных решений в коде. В принципе думаю потом переписать программу с учётом приобретённых в будущем знаний, довести её до ума, так сказать. Поэтому фидбек мне будет полезен - в учебных целях. Так что буду благодарен тому, у кого возникнет желание покопаться в коде или хотя бы запустить программу и сделать пару дельных замечаний.
UPD. Заменил ссылку на версию 1.3. Значительно переработал код. Добавил несколько новых возможностей:
- Теперь можно выбирать фамилию сотрудника из файла выгрузки.
- После вывода значимой информации экран каждый раз очищается по нажатию Enter.
- И ещё мелкие улучшения, см. чейнджлог.
Enjoy!