Понял, про какие именно задачки с шахматами в комментариях говорят :)
Когда на лекциях попались, быстро сделал, а вот на экзамене пришлось понервничать. Примерно полчаса оставалось, когда сделал последнюю задачу. Смотрел потом решения других ребят, все лаконично и просто, а у меня в полтора раза больше строк. Также узнал из комментариев, что существует функция abs() в Python. Я же модуль вручную считал, в общем, еще учиться и учиться.
После 2 экзамена: 440/2049 баллов получено, 22% материалов пройдено.
Когда на лекциях попались, быстро сделал, а вот на экзамене пришлось понервничать. Примерно полчаса оставалось, когда сделал последнюю задачу. Смотрел потом решения других ребят, все лаконично и просто, а у меня в полтора раза больше строк. Также узнал из комментариев, что существует функция abs() в Python. Я же модуль вручную считал, в общем, еще учиться и учиться.
После 2 экзамена: 440/2049 баллов получено, 22% материалов пройдено.
После шахмат прям все легко было, быстренько пробежался по задачкам.
Проблемка была только с задачей с вычленением дробной части. Вместо предполагаемого 0.45 выдавало 0.45000000000000284 и я полчаса искал, как это исправить. Обычно не смотрю в комментарии, но тут прям сдался: оказалось, у всех такая проблема, но результат Степик принимает.
Также было упомянута история со взрывом ракеты Ариан-5 из-за ошибки в коде (в комментах написали, что использовался язык программирования Ada). Стало интересно, какой язык программирования используют в российском космическом ракетостроении: оказалось, что программируют на ДРАКОНе (расшифровывается как дружелюбный русский алгоритмический язык, который обеспечивает наглядность). Надо будет узнать об этом подробнее.
А пока идем дальше.
Проблемка была только с задачей с вычленением дробной части. Вместо предполагаемого 0.45 выдавало 0.45000000000000284 и я полчаса искал, как это исправить. Обычно не смотрю в комментарии, но тут прям сдался: оказалось, у всех такая проблема, но результат Степик принимает.
Также было упомянута история со взрывом ракеты Ариан-5 из-за ошибки в коде (в комментах написали, что использовался язык программирования Ada). Стало интересно, какой язык программирования используют в российском космическом ракетостроении: оказалось, что программируют на ДРАКОНе (расшифровывается как дружелюбный русский алгоритмический язык, который обеспечивает наглядность). Надо будет узнать об этом подробнее.
А пока идем дальше.
В прошлых задачах приходилось модуль находить рассчетами, но теперь можно и через функцию abs(), ура! Также с функциями min() и max() стало проще находить минимумы и максимумы.
Также впервые столкнулся с зарезервированным словом, которое вызывало ошибку. Чтобы получить список таких слов, нужно сделать следующее:
1. Запустить в любом терминале Пайтон (я запускал прямо в терминале VSC), написав python и нажав клавишу Enter,
2. Дальше пишем help() и опять нажимаем Enter,
3. Печатаем keywords и получаем список зарезервированных слов для вашей версии Python
Скриншоты приложил.
Также впервые столкнулся с зарезервированным словом, которое вызывало ошибку. Чтобы получить список таких слов, нужно сделать следующее:
1. Запустить в любом терминале Пайтон (я запускал прямо в терминале VSC), написав python и нажав клавишу Enter,
2. Дальше пишем help() и опять нажимаем Enter,
3. Печатаем keywords и получаем список зарезервированных слов для вашей версии Python
Скриншоты приложил.
Началась тема про строковый тип данных.
Были введены новые функции len() и str(), рассказано про конкатенацию строк и их умножение на число. Задачи показались проще, чем раньше, когда была сплошная математика.
Интересное из комментариев:
1) Если перед кавычками вводимого текста поставить букву f, то можно будет сразу в строке, обрамляя фигурными скобками, писать название переменных:
print(f"«Hello {имя} {фамилия}! You just delved into Python»")
2) Помните, что в функциях min и max есть такой аргумент, как key, в который можно передать функцию, по которой будет проводиться вычисление и сравнение. Так вот, туда можно передать и стандартную функцию len. Например,
min('str1', 'str2', 'str3', key=len)
Надо будет запомнить, решал задачи без этих аргументов.
Были введены новые функции len() и str(), рассказано про конкатенацию строк и их умножение на число. Задачи показались проще, чем раньше, когда была сплошная математика.
Интересное из комментариев:
1) Если перед кавычками вводимого текста поставить букву f, то можно будет сразу в строке, обрамляя фигурными скобками, писать название переменных:
print(f"«Hello {имя} {фамилия}! You just delved into Python»")
2) Помните, что в функциях min и max есть такой аргумент, как key, в который можно передать функцию, по которой будет проводиться вычисление и сравнение. Так вот, туда можно передать и стандартную функцию len. Например,
min('str1', 'str2', 'str3', key=len)
Надо будет запомнить, решал задачи без этих аргументов.
Получилось сделать достаточно много задач.
В одной из задач опять пришлось использовать оператор or, на этот раз, уже зная, что сравнивать надо переменные, к которым присваивается то или иное значение, решил с первого раза.
Но в одном из комментариев пописали работу оператора or:
'суббота' or 'воскресенье' = 'суббота', потому что:
or оценивает второй аргумент, только если первый равен false. И если какой-либо операнд в цепочке or является истиной, немедленно возвращается результат: первое истинное значение.
Для строк '' — пустая строка считается false, все остальное — true.
По-моему, очень толково и сразу запоминается.
В одной из задач опять пришлось использовать оператор or, на этот раз, уже зная, что сравнивать надо переменные, к которым присваивается то или иное значение, решил с первого раза.
Но в одном из комментариев пописали работу оператора or:
'суббота' or 'воскресенье' = 'суббота', потому что:
or оценивает второй аргумент, только если первый равен false. И если какой-либо операнд в цепочке or является истиной, немедленно возвращается результат: первое истинное значение.
Для строк '' — пустая строка считается false, все остальное — true.
По-моему, очень толково и сразу запоминается.
Началась тема про циклы, говорят, задачи еще замороченнее, чем про шахматы.
Интересна история, почему в циклах используются переменные i, j, k. Википедия говорит нам, что по общему соглашению об именовании идентификаторов для счетчика циклов используются имена переменных i, j и k (и так далее, при необходимости), где i означает предельное значение счетчика циклов, при котором происходит выход из цикла, j — внутренний счетчик следующего цикла и т. д. Некоторые программисты также используют обратный порядок или дублируют ii, jj, kk, что упрощает их поиск в коде.
К упомянутым трем переменным иногда еще добавляют l, m, n. Эти индексы пошли из программирования на Фортране (в детстве, кстати, была забавная книжка про этот язык программирования, с комиксами :)), где имена переменных от i до n обозначали целочисленный тип, остальные — вещественный тип. В свою очередь, разработчики Fortran позаимствовали эти буквы из математической нотации, где индексы для сумм, умножений и направлений вектора обозначаются i, j, k.
Интересна история, почему в циклах используются переменные i, j, k. Википедия говорит нам, что по общему соглашению об именовании идентификаторов для счетчика циклов используются имена переменных i, j и k (и так далее, при необходимости), где i означает предельное значение счетчика циклов, при котором происходит выход из цикла, j — внутренний счетчик следующего цикла и т. д. Некоторые программисты также используют обратный порядок или дублируют ii, jj, kk, что упрощает их поиск в коде.
К упомянутым трем переменным иногда еще добавляют l, m, n. Эти индексы пошли из программирования на Фортране (в детстве, кстати, была забавная книжка про этот язык программирования, с комиксами :)), где имена переменных от i до n обозначали целочисленный тип, остальные — вещественный тип. В свою очередь, разработчики Fortran позаимствовали эти буквы из математической нотации, где индексы для сумм, умножений и направлений вектора обозначаются i, j, k.
В новых темах разбирали функцию range().
Может принимать в себя три параметра: первый — число, с которого начинается последовательность, второй — число, перед которым заканчивается последовательность, третий — величина шага.
Получается, range() — это своего рода арифметическая прогрессия, первый параметр отвечает за первое число прогрессии, второй — за число, перед которым прогрессия заканчивается, а третий — за шаг прогрессии. Шаг прогрессии — это сколько нужно прибавить или вычесть, чтобы получить следующее число прогрессии.
Если так сравнить, сразу запоминается.
Может принимать в себя три параметра: первый — число, с которого начинается последовательность, второй — число, перед которым заканчивается последовательность, третий — величина шага.
Получается, range() — это своего рода арифметическая прогрессия, первый параметр отвечает за первое число прогрессии, второй — за число, перед которым прогрессия заканчивается, а третий — за шаг прогрессии. Шаг прогрессии — это сколько нужно прибавить или вычесть, чтобы получить следующее число прогрессии.
Если так сравнить, сразу запоминается.
Еще один день, когда смог выделить много времени для решения задач.
Сделал табличку с операторами присвоения в Python: было бы здорово довести их использование до автоматизма, пока при чтении кода присутствует некое замешательство.
Понравился простой способ обмена значениями переменных: x, y = y, x. Переменная x получает значение переменной y и наоборот, переменная y получает значение переменной x. Пример:
x = 2
y = 17
x, y = y, x
print(x, y)
Терминал выведет 17 2 так как теперь x = 17, а y = 2.
Также работает с тремя и более переменными.
Сделал табличку с операторами присвоения в Python: было бы здорово довести их использование до автоматизма, пока при чтении кода присутствует некое замешательство.
Понравился простой способ обмена значениями переменных: x, y = y, x. Переменная x получает значение переменной y и наоборот, переменная y получает значение переменной x. Пример:
x = 2
y = 17
x, y = y, x
print(x, y)
Терминал выведет 17 2 так как теперь x = 17, а y = 2.
Также работает с тремя и более переменными.
Уже прошло треть курса.
Над последними задачами пришлось подумать, одну пришлось даже с костылем решать, так как все время забываю, что можно сначала print в цикле сделать, а потом решать.
Завтра-послезавтра будет мало времени на занятия, но 1-2 попытаюсь сделать, чтобы не сбить серию.
Над последними задачами пришлось подумать, одну пришлось даже с костылем решать, так как все время забываю, что можно сначала print в цикле сделать, а потом решать.
Завтра-послезавтра будет мало времени на занятия, но 1-2 попытаюсь сделать, чтобы не сбить серию.
Вот и лето наступило.
Приступил к изучению цикла while, пока успел сделать только теоретические задачки на понимание работы этого цикла. Внешне он выглядит больше цикла for, но как объясняют, нужен для разных задач. Посмотрим.
С завтрашнего дня начну параллельно Инди-курс программирования на Python Артема Егорова, к которому добавили на 4 разделе, для закрепления материала.
Приступил к изучению цикла while, пока успел сделать только теоретические задачки на понимание работы этого цикла. Внешне он выглядит больше цикла for, но как объясняют, нужен для разных задач. Посмотрим.
С завтрашнего дня начну параллельно Инди-курс программирования на Python Артема Егорова, к которому добавили на 4 разделе, для закрепления материала.