Практика программирования на Python 3, лекция №2

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

"Мы называем козла козлом потому что это отражает сущность козла" - © Тимофей Хирьянов

ТимурДайнеко-ъл
Автор

Я просто в шоке от того, на сколько вы все просто и понятно объясняете. Смотрю ваши видео вместо сериалов, даже когда ем. Очень благодарный вам за такую подачу иныормации. Всего вам наилучшего!

VladislavGroniuk
Автор

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

meldak
Автор

Научился вставлять ссылки на другие видео в конце лекции.

tkhirianov
Автор

0:00 Вступление. Про направление развития Python как ЯП
1:04 Про "блоки" (в частности if-else-elif) и текстовые редакторы
3:27 Возврат к блокам. (5:45 Про "призраков")
6:09 Про комментарии и самодокументируемость (7:00 про сущность козла)
8:06 Продолжение про блоки.
9:30 Отвлечение про закомментированный код и почему это зло.
11:10 Цикл while (12:30 отвлечение про синтаксический сахар)
14:50 Продолжение про цикл while.
(15:30 Рисуем блок-схему 17:20 Пример с беговой дорожкой 18:25-18:55 Про зацикливание)
19:30 Про выход из "середины"(break) (19:55 Про небольшие и большие программы/участки когда/блоки)
20:50 Продолжение "выход из середины"
24:45 Расширяем пример со стадионом
25:25 Добавляем else к while
26:10 Другие способы выхода (throw)
27:47 Другие способы выхода (exit) (28:20-29:35 Пример с ракетой)
30:10 Вопрос про else
31:40 Цикл for.
35:00 Про итерируемые объекты
36:10 Вопрос про двумерный корртеж
37:30 Продолжение про итерируемые объекты
38:30 Пример реализации цикла от 1 до 100 с while.
42:36 Возвращаемся к for. Генератор арифметических прогрессий (range)
43:50 Отвлечение про типы
46:25 Про range и параметры по умолчанию
47:50 Про функции def. Теория.
50:50 Устройство функций 51:35 синтаксис def
53:00 Про вызов def и некоторые из способов
55:30 Про функции без return 57:25 и тип такой функции (none type) 58:30 return None в теле функции
59:59 Про Типы объектов в python
1:02:30 Про полиморфизм (ducktyping)
1:03:30 Про читабельность. 1:05:30 комментарий для формальной переменной в функции (аннотация типов/type annotation)
1:07:45 Про тестирование и коммуникацию между программистами
1:08:40 Про названия функций 1:10:40 Про PEP8
1:11:35 Про документ строки
1:12:20 Про переносы строк и экранирование

NeoSkywalker
Автор

Гениальный преподаватель, талантище! Так просто объяснять это надо любить предмет. Когда с любовью, тогда вот такие лекции получаются. Спасибо, Тимофей, за Ваши лекции!

MrEnst
Автор

Тимофей Федорович - как обычно - ВЫСШИЙ КЛАСС! Смотрю, не отрываясь!!!

MandarinkOification
Автор

Тайм-коды: Оператор if, else, цикл While, цикл for, Функции
0:36 Питон - читабельность текста. Легко читать, понимать, поддерживать
1:04 блоки. if. Отступ 4 пробела
2:17 среда разработки PyCharm (Community Edition) (Jet Brains)
5:13 Призрак. (Ghost) Некоторое логическое условие, которое верно, но не очевидно из условия, на некотором участке кода
6:10 комментарии в коде. Лучше отсутствие, чем устаревший. Программный код должен быть Самодокументирующимся
9:30 закомментированный код - зло
11:11 цикл (Пока) While условие: <-- Заголовок цикла. Пока условие (верно): выполняется код строчками ниже, который с отступами <-Тело цикла. В ходе этого кода переменная условия меняется. Код с отступом заканчивается. <- первая Итерация. И тогда снова проверяется условие в заголовке. Если всё еще верно - > вторая итерация. и т.д. Цикл
12:03 х -= 1 тоже самое х = х - 1. Проводится операция над х и запихивается обратно в х. Синтаксический сахар. Вычисляется новый объект х, на основании операции над старым объектом х
15:26 блок-схема цикл
17:20 пример: беговая дорожка
17:35 в теле цикла (в ходе его выполнения) бывает, что условие входа не верно, а потом меняется на верное. Условие входа на итерацию проверяется один раз при входе. При каждом входе
18:29 зацикливание
19:55 разбитие кода на блоки
20:47 break. Полный выход из цикла в середине. При этом призрак меняется
24:49 else: (в цикле while). Если цикл сам закончился - выполнится 1 раз
26:17 throw Error (бросить например ошибку). Другой способ выхода из цикла
27:47 exit() - закрыть прогу. Другой способ выхода из цикла
28:20 пример: ракета
31:45 цикл for. Похож на программируемую командную с строчку. У него списочный характер
34:07 for x in tuple: # кортеж или любой итерируемый объект. Цикл for не зацикливается. Синтаксический сахар. Всегда можно сделать и while-ом
38:12 range() # диапазон(start, stop, step). Генератор арифметических прогрессий. Это функция
38:30 пример: реализация цикла от 1 до 100 в while
42:35 for x in range(101):
44:41 взять произвольный элемент из итерируемого объекта можно не из любого. Random access (произв. доступ)
45:23 А[5] - шестой элемент в списке А, т.к. всегда считается с 0 (нулевого) элемента (первый эл. = [0], второй = [1])
46:29 параметры по умолчанию в range(10) : (start = 0, stop = 10, не включительно или длина списка, step = +1)
47:54 Функции. Синтаксическая конструкция. Подпрограмма. Которую требуется выполнять. Каждый её вызов - это её выполнение
48:35 каждый вызов функции создает пространство имен, для Локальных переменных в этой функции. Один и тот же х, в двух разных вызовах одной функции, будет разными объектами. Локальные переменные от вызова к вызову не сохраняются.
49:18 подпрограммы нужны для разбития всей простыни кода на смысловые блоки.
Название функции - то, что они делают, а не то, что они возвращают
50:47 блок-схема функции. Синтаксис. def f(x, y): # definition Определение. <--Заголовок. х и у - это Входные значения или Формальные параметры
52:31 Выходные значения --> в Теле с отступом после return Функция описана!
52:58 Вызов функции. print (f (1, 2) ) # 1, 2 - Фактические параметры. После того, как функция описана, её можно вызывать. И не один раз можно. Формальных параметров не существует в программе, пока не вызваны Фактические в процессе выполнения
54:24 порядок выполнения (вызовов) программы
55:30 функции без return (которые ничего не возвращают = возвращают Ничего)
Type None ( у него одно значение - Ничего)
58:27 проход исполнения в функции. То, что написано ниже return никогда не выполнится
59:57 тип параметров функции определяется интроспективно (т.е. если это сделать можно, то это и сделается). В Питоне полиморфизм. Duck Typing (утиная типизация)
1:03:30 коммуникация чел<-->интерпретатор и чел<-->чел
1:05:00 def f(x:int, y:'int, >0') -> int: # Type annotation Аннотация типов. это Комментарий к формальным параметрам функции и выходному значению. Контакт. Код должен быть читабельным (readable) и поддерживабельным (supportable)
1:07:47 тестирование контрактов есть
1:08:35 хорошее название для функции (маленькими буковками через подчеркивание)
1:10:34 к регистру Питон чувствителен. Стандартные правила кодирования PEP8
1:11:35 Документ-строка. Пишется под заголовком функции. " " " многострочная строка " " " или ' ' ' ' ' '
1:12:12 Экранирование ("\") <-- перенос строки, '\\' - косая черта
1:14:52 док-строка - это коммуникация с человеком

iritaka
Автор

Автор настолько крут, что местами кажется, что он читает мои мысли и те вопросы, которые возникают в голове. И тут же на них отвечает.
Это реально лучший курс по Python, что я видел.

alexeysafronov
Автор

Тимофей Хирьянов отлично преподает. Приятно слушать его лекции. Что-то притягивает. Хотя я занимаюсь программированием уже 30лет. На Python особой практики нет. Лет 5 назад писал на python-е массовый обработчик картинок и всё. Научился программировать на Python в тот день когда писал и в тот же день и забыл :) Что я хотел написать. Что break очень полезный оператор и в моей практике я в основном использую для экономии времени выполнения кода, когда например есть большая куча данных и посредством while или for нужно в них что-то найти или вычислить, то здесь когда это что-то уже найдено и дальше смысла нет перебирать данные (что может требовать много времени) нужно срочно выйти из цикла и сэкономить время. Конечно начинающие не думают о времени выполнения и о том сколько памяти потратит скрипт, но когда уже ты профессионал, ты должен думать о том, как сэкономить время, как сделать, чтобы твоя программа использовала меньше памяти.

AraratDarbinyan
Автор

Вы - замечательный преподаватель. Жаль, что учусь в другом институте (не позволяет бюджет), но очень рад вашим урокам. Спасибо огромное!

ivanfry
Автор

"Много болтаю - мало пишу" - гениально. Но до чего же емок, корректен, выразителен язык!

АнтонинаАкиньшина
Автор

Дорогие студенты, вам невероятно повезло с преподавателем. У меня в универе были оч. скучные и плохо доносящие информацию учителя, поэтому учитесь и цените что есть. Благодарю Тимофея Хирьянова за отличные лекции :)


P.s.: начал учить Python :)

olexandrrymar
Автор

Здравствуйте, Тимофей. Спасибо за Ваш труд.

dharmanam
Автор

Хорошая подача материала, приятно наблюдать за увлеченным человеком.

ИгорьКа-оэ
Автор

где вы были когда я начал изучать питон)) спасибо завидую вашим студентам)

serverexe
Автор

При всей доходчивости изложения, всё же это самый настоящий ГРАНИТ науки... Половину посмотрел, уже мозги вскипают.

dyler_turden
Автор

26:40 все таки raise, а не throw для вызова исключения

СергейПустовит-въ
Автор

Благодарю! Даже гуманитарию всё понятно! Дай вам Бог здоровья!
(всегда найдется "умный"

stanislav-kir
Автор

"Питон, он будет жрать, что дали" (с)

knifeleather