19 мая 2017 в 01:09

Разработка → Эра Python. Начало


Недавно, со сменой руководства, наша кафедра взяла курс на усиление и развитие базы программирования сразу в нескольких предметах, которые мы преподаем. Конкретней – был введен новый для нас язык программирования Python. Не скажу, что это далось быстро и безболезненно, но со временем я оценила простоту и легкость обучения, а главное, широту использования данного языка.

Боюсь вызвать (или нет?) очередную волну холивара, но старый добрый и любимый до сих пор во многих школах и ВУЗах (наш не исключение) Pascal, мягко говоря, не подходит для неокрепшей психики студентов, которым с первого курса преподают программирование на этом языке. И, что печально, но легко объяснимо, несчастные дети не понимают, зачем им это чудо нужно и где они его будут применять в реальной жизни. Да-да, я в курсе, что в мире чистый Pascal не используется, а предназначен в основном для знакомства с азами программирования. Но скажите, зачем из пяти лет обучения, студенту тратить полгода или год (зависит от фантазии лектора) на это самое ознакомление на примере мертвого языка, который после придется априори забыть, если можно сразу изучать перспективный и, главное, широко используемый язык программирования?

Так что, приход нового руководства ознаменовался на нашей кафедре эрой Python-а.

К чему столь затянутое и пафосное вступление? Дабы нашим студентам было интересно выполнять практические и лабораторные работы по Python, было решено выкладывать их на Хабре в доступной, понятной и несколько неофициальной форме. Ну а если эта и другие статьи принесут пользу еще кому-либо, я буду только рада. Конструктивная критика, как всегда, приветствуется.

Статья не претендует на новизну и уникальность. Спецам по Python она, вероятно, будет малоинтересна, т.к. ориентирована в основном, на новичков в этой области и, возможно, преподавателей.

Первая работа посвящена вводу-выводу, а также, простейшим математическим операциям.

За окном – лето, а это значит минимум одежды и максимум красоты, красоты тела (в разумных пределах, естественно). Если в холодное время года проявления лишнего веса можно спрятать под одеждой, то в летнее время это сделать практически нереально. Конечно, многие зимой зря время не теряли и занимались собой в фитнес-клубах и спортзалах, и проблемы лишнего веса или слабой мускулатуры у них нет, но что делать отстающим? Ответ – лучше хоть что-то делать, чем не делать ничего или, как говорится, лучший способ научиться программировать – это программировать. Давайте совместим приятное с полезным.

Начинать заниматься спортом не поздно никогда и если подойти к этому делу с умом, то уже за пару месяцев упорного труда (под таковым подразумевается минимум три раза в неделю) можно увидеть реальные результаты работы над собой. При этом обязательно соблюдение трех важнейших условий: правильно подобранный комплекс тренировок, достаточный и регулярный отдых и правильное питание. Это утверждение справедливо как для мужчин, так и для женщин.

В данной работе мы коснемся именно правильного питания. Почему? Отсутствие сбалансированного и индивидуально подобранного питания может, при регулярных спортивных нагрузках, нанести скорее вред (иногда и непоправимый), чем принести пользу.

Давайте рассчитаем, сколько белков, жиров и углеводов должен потреблять человек, получая регулярные физические нагрузки. Напишем мужскую и женскую версию приложения. Витамины, минералы и микроэлементы в этой работе опустим.

1. Белки


Самая простая формула — 1 г белка на 1 кг веса. Т.е., если ваш вес составляет 60 кг, то в сутки вы должны принять не менее 60 г белка. Но в данной работе нам нужно что-то посчитать, верно? Поэтому, давайте несколько усложним. Вышеприведенное утверждение справедливо для организма в состоянии покоя, т.е., исключительно для поддержания своей жизнедеятельности. Но т.к. мы собрались активно заниматься спортом, суточное потребление должно быть выше. На сколько? Общепринятая норма для средних физических нагрузок (а это как раз наш случай) составляет от 1,5 до 2 г белка на 1 кг веса.

Но и это не все. В данном расчёте используется так называемый идеальный вес, который может отличаться от фактического. Этот идеальный вес вычисляется по формуле Брока.

Для девушек: $inline$В_{иж}=(Р-100)\cdot0,85$inline$;
Для парней: $inline$В_{им}=(Р-100)\cdot0,9$inline$,
Где $inline$В_{иж/м}$inline$ – идеальный вес женский/мужской, Р – фактический рост.

Теперь мы можем вывести формулу суточного потребления белка для девушек и парней. Предлагаю для каждой категории рассчитать стандартную норму (Б), а также норму для спортсменов (наш случай), как минимальную ($inline$Б_{сmin}$inline$), так и максимальную ( $inline$Б_{сmax}$inline$).

$inline$Б = В_{и ж/м}\cdot1$inline$;
$inline$Б_{с min} = В_{иж/м}\cdot1.5$inline$;
$inline$Б_{с max} = В_{иж/м}\cdot2$inline$.

2. Жиры


Формула расчета суточной нормы жира ($inline$Ж_{min}$inline$, $inline$Ж_{max}$inline$) практически аналогична формуле белка.

$inline$Ж_{min} = В_{иж/м}\cdot1$inline$;
$inline$Ж_{max} = В_{иж/м}\cdot1,1$inline$;

Но помните: что бы вы не получили в результате расчетов, более 70 г жира в сутки человеку потреблять противопоказано (если на то нет медицинских показаний).

3. Углеводы


Расчет углеводов разделим условно на женский (сброс лишнего веса) и мужской (набор мышечной массы) вариант, в обоих случаях вычислим суточную норму быстрых и медленных углеводов ($inline$У_{жм}$inline$, $inline$У_{жб}$inline$, $inline$У_{мм}$inline$ и $inline$У_{мб}$inline$ соответственно).

$inline$У_{min} = В_{иж/м}\cdot1$inline$;
$inline$У_{жм}=В_{иж}\cdot2$inline$;
$inline$У_{жб}=В_{иж}\cdot1$inline$;
$inline$У_{мм}=В_{им}\cdot2,5$inline$;
$inline$У_{мб}=В_{им}\cdot2$inline$.

Помните, что приведенные здесь расчеты являются довольно грубыми и очень усредненными. Цель данной работы — научиться считать и осуществлять ввод-вывод данных на Python-е, поэтому, если вы действительно захотите скорректировать свое питание, обратитесь к диетологу или серьезно исследуйте эту тему сами!

Пора приступить к делу и все сказанное выше оформить в виде программы на Python-е. Для ввода данных в программу (в нашем случае это рост человека, для которого выполняется расчет), используется функция input(), которая может принимать необязательный аргумент строкового типа. При выполнении программы, когда встречается данная функция, поток останавливается, выводит сообщение-подсказку, и ожидает данные, вводимые пользователем с клавиатуры. После нажатия клавиши Enter выполнение программы продолжается. При этом нужно помнить, что Python воспринимает введенные объекты как строки, а для последующих вычислений нам нужны числа, поэтому для преобразования строки в число воспользуемся стандартной функцией int:

Rost=int(input('Введите ваш рост в см - '))	 #считываем строку и кладем ее в переменную Rost

Далее записываем формулу расчета идеального веса для женщин:

Ves_ideal_woman=(Rost-100)*0.85


Для вывода данных Python использует команду print(). Внутри круглых скобок через запятую перечисляем все, что нужно вывести. Это могут быть числа, строки (в кавычках) и даже выражения, которые Python выполняет “на лету”:

print('Ваш идеальный вес, к которому можно стремиться -',round(Ves_ideal_woman),'кг') #стандартная функция round использована, чтобы округлить значения выражений
print('Без нагрузок в сутки вам нужно потреблять',round(Ves_ideal_woman*1),'г белка.')
print('При занятиях спортом вам нужно употреблять минимально',round(Ves_ideal_woman*1.5),'г и максимально',round(Ves_ideal_woman*2),'г белка в сутки.')
print('Также употребляйте минимально',round(Ves_ideal_woman*1),'г и максимально',round(Ves_ideal_woman*1.1),'г жиров в сутки.')
print('Помните, максимальное количество жиров не должно превышать 70 г в сутки!')
print('Не забудьте про углеводы двух видов, которых должно быть ежедневно:',round(Ves_ideal_woman*1),'г быстрых и',round(Ves_ideal_woman*2),'г медленных.')


Вот скрин результата выполнения программы
Результат выполнения программы


Для написания мужской версии программы, нужно изменить соответствующие коэффициенты в формулах.

Как сказал Нео,
теперь вы знаете Кунг-фу.