Питонка
2 subscribers
71 photos
4 links
Download Telegram
Успел решить всего 4 задания, да и то теоретические.

Появились новые операторы: остаток от деления (%), целочисленное деление (//) и возведение в степень (**).

Если с последним проблем не было, нужно только запомнить, что имеет наивысший приоритет перед другими операторами, то остальные два вызывают вопросы. Так например, при целочисленном делении округление берется в меньшую сторону, или как еще говорят в комментариях, вниз.

10 // 3 = 3 # при 10 / 3 = 3.333....
19 // 5 = 3 # при 19 / 5 = 3.8

-10 // 3 = -4 # при -10 / 3 = -3.333....
-19 // 5 = -4 # при -19 / 5 = -3.8

То есть, если в результате деления получается дробное число, то при целочисленном делении округляется до того целого числа, которое идет ПЕРЕД результатом. Если получилось:

3.33, то округляется до 3
-3.33, то округляется до -4 (так как -4 идет перед результатом: -4, -3.33, -3)
3.8 => до 3 (3 меньше 3.8)
-3.8, => до -4 (так как -4 идет перед -3.8: -4, -3.8, -3)
12.9, => до 12 (12 < 12.9)
-12.9, => до -13 (-13 меньше -12.9, а -12 больше)
Вчера был занят, сделал только одну задачу.

Еще попробовал описать, как я понял оператор Остаток от деления в Python: можно прочитать здесь.

Завтра, надеюсь, получиться сделать чуть больше, но от математики, конечно, голова кругом.
Итак, пройдены 2 раздела курса Поколение Python на Степике.

Первый — вводный и второй — "Ввод-вывод данных".

Изучены команды print и input, параметры sep и end, арифметические операторы сложение (+), вычитание (-), умножение (*), деление (/), а также операции возведения в степень (**), нахождения остатка (%) и целочисленное деление (//).

Определили, что в Python используется пока непривычный мне змеиный регистр.

Из важного: округление в Пайтон используется вниз (floor), то есть в меньшую сторону, или назад.

Прогресс по курсу: 179/2049.

Надеюсь, ничего не упустил. Дальше меня ждет экзамен, на него дается только одна попытка.
Было написано, что на экзамен выделяется 240 минут, было волнительно :).

По факту, прошел все минут за 30 со всеми отвлечениями на оформление и скриншоты в Visual Studio Code. Из того, о чем не упомянул в прошлом посте, встретился только вопрос про именование переменных:

1. Имя переменной может содержать только латинские буквы, числа и символ нижнего подчеркивания,
2. Имя переменной не должно начинаться с цифры,
3. Имя переменной не может совпадать с ключевым (зарезервированным) словом,
4. Имя переменной может начинаться с символа подчёркивания (_),
5. Регистр в имени переменной важен: Variable и variable — это разные переменные.

Задачи на программирование решились быстро, практически интуитивно.

Идем дальше!
4 задачи за вчера, скриншот во вложении.

В личку на Степике прилетело приглашение поучаствовать в курсе Инди-курс программирования на Python от известного блогера-программиста на Youtube Артема Егорова. Пожалуй, чуть позже начну его тоже проходить, чтобы освежать память о пройденном материале.

А на текущем курсе начался раздел Условный материал (операторы if ... else).
Очередные 6 задач выполнены.

Опять пришлось вспоминать математику, на этой раз арифметическую прогрессию.

Арифметическая прогрессия - это последовательность чисел, где каждое следующее число получается прибавлением одной и той же величины (шага) к предыдущему числу. Например, если начать с числа 7 и прибавить к нему каждый раз 3, то получим арифметическую прогрессию: 7, 10, 13, 16 и так далее. В такой прогрессии каждое число больше предыдущего на одно и то же значение.

Так же была задача написать программу, которая в результате выводит самое маленькое число из четырех внесенных пользователем чисел. Получилось аж на 27 строк (на скриншоте). У коллег получилось в два или три раза меньше, не считая тех, кто в одну строчку решает. Но на момент решения только так автоматом пришло в голову.
Новые задачи сделаны.

Пройдены логические операторы and, or и not. Сделал табличку для наглядности (прикрепил), тут главное — внимательность.

И куда же без математики? При решении одной из задач пришлось гуглить что такое невырожденный треугольник.

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

Формула для невырожденного треугольника известна как неравенство треугольника.

Сумма длин любых двух сторон треугольника должна быть больше длины третьей стороны.

Если обозначить стороны треугольника как a, b и c, то неравенство можно записать следующим образом:

a + b > c
b + c > a
a + c > b

Вот их и подставляем в программу.
Сделал несколько задач, но застопорился на задаче с месяцами.

Вроде в теории должно все работать, но почему-то проверку не проходит. Перенес на завтра.
Пару задач с шахматами как-то интуитивно решились за 5 минут.

На выходные есть планы с семьей, много времени не получится выделить.
Иногда полезно делать перерыв.

Вроде простая задачка про месяцы, в теории все понимаю и делаю все правильно, но совершенно затуманило, что оператор or работает с равенствами, а не результатами, и надо писать так: month == 3 or month == 5, а не month == 3 or 5.

Сегодня пришлось помучаться с отрезками. Неидеальное, конечно, решение, но проверку прошло. Так как я пытаюсь решать, не смотря в комментарии, только потом увидел клевую картинку, которую можно было использовать для решения (прикрепляю). Перебираешь все возможные варианты: и вместо 27 строк, как у меня, получилось бы строк 17-19.

Впереди второй экзамен.
Понял, про какие именно задачки с шахматами в комментариях говорят :)

Когда на лекциях попались, быстро сделал, а вот на экзамене пришлось понервничать. Примерно полчаса оставалось, когда сделал последнюю задачу. Смотрел потом решения других ребят, все лаконично и просто, а у меня в полтора раза больше строк. Также узнал из комментариев, что существует функция abs() в Python. Я же модуль вручную считал, в общем, еще учиться и учиться.

После 2 экзамена: 440/2049 баллов получено, 22% материалов пройдено.
После шахмат прям все легко было, быстренько пробежался по задачкам.

Проблемка была только с задачей с вычленением дробной части. Вместо предполагаемого 0.45 выдавало 0.45000000000000284 и я полчаса искал, как это исправить. Обычно не смотрю в комментарии, но тут прям сдался: оказалось, у всех такая проблема, но результат Степик принимает.

Также было упомянута история со взрывом ракеты Ариан-5 из-за ошибки в коде (в комментах написали, что использовался язык программирования Ada). Стало интересно, какой язык программирования используют в российском космическом ракетостроении: оказалось, что программируют на ДРАКОНе (расшифровывается как дружелюбный русский алгоритмический язык, который обеспечивает наглядность). Надо будет узнать об этом подробнее.

А пока идем дальше.