Babay82
Код писался непосредственно только для выполнения этой задачи, без дальнейших планов модификации, исключительно в целях усвоения пройденного материала(верхняя строка описание дописалась уже после , для порядка). Меня интересует оценка непосредственно самого кода выполнения программы, относительно поставленных задач?
Понятно, что выполняя учебные задачи вы тренируете какой-то конкретный аспект полученных знаний, но это не значит, что можно не обращать внимания на другие аспекты. Искусство программиста вовсе не в циклах и ветвлениях, это всё ерунда - арифметика, надо с первых шагов учиться писать чистый и понятный код. А какие у нас основополагающие правила хорошего кода? Во-вепрых, задачу следует стремиться решить в общем виде. Давайте посмотрим на ваш код:
Какая есть необходимость жестко привязывать решение именно к четырем характеристикам? Вася, Петя и Коля получают задачу из стартового поста, но у Васи вариант А (четыре характеристики), у Пети Б (пять характеристик), а у Коли В (шесть характеристик). Вася и Петя решили задачу для своего частного случая, а Коля решил в общем виде - его программа легко модифицируется под любое количество характеристик. Чья программа лучше? Конечно, колина, ведь он один сделал и свою работу и васину и петину. Он более эффективен как программист, его код более ценен и Коля закончив курсы получает более высокооплачиваемую должность, хотя в циклах и ветвлениях они все понимают одинаково.
Во-вторых, ВСЕГДА следует смотреть на программу в рамках её жизненного цикла (пусть даже теоретического). Вы не всегда будете писать одноразовый учебный код. Реальные программы изменяются, растут, усложняются иначе они никому не нужны. И от того, насколько гибкой к изменениям будет ваша программа напрямую зависит эффективность бизнеса - ваш коллектив будет быстрее и с меньшим количеством ошибок решать поставляемые заказчиком требования, а следовательно будет больше денюжек.
Babay82
переменные, ветвление, циклы while и for, строки, кортежи, списки, словари и всё
Отлично! У вас есть все, чтобы написать программу более правильно. Попробуйте.