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

Поделиться
HTML-код
  • Опубликовано: 31 окт 2024

Комментарии • 63

  • @NeoSkywalker8081
    @NeoSkywalker8081 4 года назад +31

    Тайм-коды: Модули (Переработанная версия коммента ruclips.net/video/ppJfqW7fL80/видео.html&lc=UgyWCUfFUNoEjzlWnVx4AaABAg)
    0:00 Приветствие
    3:00 Несколько слов о процессах в программировании, об организации этих процессов, о интерфейсах
    -> 4:19 Этапы проекта
    -> 5:19 О проработке интерфейса (взаимодействие частей проекта, структурных единиц)
    6:39 Средства декомпозиции
    9:19 Почему модули
    -> 19:30 Про import (кратко, подробнее 35:20)
    23:05 Подкаталоги. Пакеты
    24:47 Про зависимость/независимость модулей друг от друга
    -> 27:41 Интересная статья на Habr (habr.com/ru/post/157831/) : "Мы сделаем этот велосипед за месяц"
    -> 28:57 Про ключевые темы на meetup-ах
    -> 34:10 Про независимость на примере игры "Кликни шарик"
    35:20 3 способа подключения модулей
    38:14 Про импортирование модулей
    -> 41:27 Про то, как отличить просто импорт от самого вызова
    -->> 41:38 Используем встроенную переменную __name__ (в начале и в конце двойные нижние подчеркивания)
    -->> 44:59 Про if __name__ == "__main__"
    -> 45:59 Про разницу from и import
    48:33 Про использование __name__ (например, для тестирования)
    51:00 Про объекты, на примере с модулем
    -> 51:40 Добавление функций для взаимодействия с объектом в модуль
    54:19 Про доступ к переменной Объекту
    -> 54:50 Из основного файла (опосредованно)
    Небольшое отступление:
    ==>> 55:30 Про полагание на интерпретатор и вывод ошибок
    ==>> 56:30 Про автодополнение и важность разделения на модули
    -> 58:20 Прямой доступ к объекту, из модуля, в основном файле
    1:00:00 Про пространство имен. Правило LEGB (Local -> Enclosed (или unlocal) -> Global -> Built-In)
    -> 1:03:02 Про порядок поиска имен, на примере print(x)
    -> 1:04:50 Про порядок поиска имен, на примере функции
    -> 1:06:26 Про порядок определения функций в структуре кода
    1:09:00 Про глобальные переменные для использовании в функциях

  • @mihakgma
    @mihakgma 4 года назад +3

    Тимофей Федорович, Вы - лучший лектор, из всех которых мне посчастливилось слушать!

  • @iritaka
    @iritaka 4 года назад +32

    Тайм-коды: Модули
    4:19 этапы проекта: 1) декомпозиция, 2) сборка
    5:19 для этого нужно проработать интерфейсы (взаимодействие частей проекта, структурных единиц)
    6:39 средства декомпозиции: 1. функции, 2. модули (пакеты модулей), 3. объекты
    9:19 почему модули
    23:05 подкаталоги. Пакеты
    24:47 зависимость модулей друг от друга
    27:41 интересная статья на habr : "Мы сделаем этот велосипед за месяц"
    28:57 ключевые темы на meetup-ах:
    1) архитектура программы (декомпозиция на модули), 2) интерфейсы модулей, 3)ответственность модулей
    35:20 3 способа подключения модулей:
    1) import модуль
    2) import модуль as сокращалочка_модуля
    3) from модуль import или точтонадо через запятую или *(всё) # все пространство модуля подтягивается прямо сюда (возможен конфликт имен, например если несколько заимпорчено, содержащих одинаковые имена)
    38:14 содержимое того модуля, который импортируется, выполняется
    41:27 как отличить просто импорт от самого вызова
    41:38 __name__ # в каждом модуле есть эта встроенная переменная (и она везде своя, разная)
    41:46 _ _ имя _ _ служебные, встроенные, built-in переменные
    44:59 if __name__ =="__main__": значит файл будет заимпорчен, а не запущен. Но, если его запустить не как модуль, то он таки кое-что сделает
    45:59 импортируешь через from -> обращаешься к переменным по_имени
    импортируешь через import -> обращаешься к ним через имя_модуля.(точка)по_имени
    48:33 либа может сама свой модуль потестить, независимо от main-модуля
    50:45 объекты в модулях
    54:19 доступ к переменной Объект между модулями: можно доступ через функции, а можно из главного модуля
    58:28 if "что-нибудь" in string:
    59:09 переменную можно изменить из другого модуля
    1:00:00 Пространство имен. Правило LEGB (1)Local -2) Enclosed - 3)Global - 4)Built-In)
    1:02:02 built-In встроенное Глобальное пространство
    1:06:26 переменная должна быть определена не к моменту описания функции, а к моменту её вызова
    1:09:00 global x # модификатор, делающий изнутри функции переменную глобальной

  • @Barmaley_YT
    @Barmaley_YT 5 лет назад +17

    Я в восторге, такого изложения материала не встречал.
    Лектор которого как гуру надо слушать,впитывать каждое слово.
    Повезло ученикам данного вуза,что могут получить такой объем очень ценной информации.
    Тимофей Хирьянов, спасибо Вам за ваши труды.

  • @vot_eto_Canada
    @vot_eto_Canada 5 лет назад +28

    Тимофей Фёдорович, спасибо огромное за материалы и за их качество изложения!

  • @СергейПресняков-о4р
    @СергейПресняков-о4р 4 года назад +34

    Обалдеть, такие лекции ещё кто-то прогуливает?!

    • @ВладимирПутин-ц9ш
      @ВладимирПутин-ц9ш 3 года назад +1

      Большая часть того что он говорит, более менее продвинутым понятно, я тоже прогуливаю))

  • @VladArnoldner
    @VladArnoldner 5 лет назад +8

    О таких уроках и преподавателе можно только мечтать. Спасибо

  • @OmgFiny
    @OmgFiny 5 лет назад +118

    Можно я буду ходить на ваши лекции вместо большинства лентяев))

  • @nikvrv
    @nikvrv 4 года назад +5

    Спасибо, Тимофей Фёдорович!

  • @dutarSafin
    @dutarSafin 4 года назад +2

    Присоединяюсь к финальным аплодисментам))
    Спасибо.

  • @QwertyQwerty-en3fb
    @QwertyQwerty-en3fb 5 лет назад +1

    Наконец-то долгожданные лекций перед сном и в автобусе)ВАШИ ЛЕКЦИЙ ПОМОГАЮ РАЗВИВАТЬСЯ И СТАНОВИТСЯ ЛУЧШЕ

  • @АлексейФедоров-о2ъ9е

    Вы лучший лектор) спасибо Вам

  • @iknowrus
    @iknowrus Год назад

    Благодарю за лекции

  • @zenovsergey
    @zenovsergey 5 лет назад +16

    Опять не спать :)) Тимофей Фёдорович, доброй ночи!

  • @АлександрПетрушин-ъ9ф

    Печально ( нижние строчки не видно (((

  • @aeees8
    @aeees8 4 года назад +3

    Спасибо автору. Если бы мне о tenzorflow или keras так же кто-то рассказал

  • @page_not_found
    @page_not_found 5 лет назад +1

    Лучший преподаватель!

  • @alexeygumenyuk8510
    @alexeygumenyuk8510 5 лет назад +4

    Вы, конечно, во время))) Но, в любом случае, спасибо)))

  • @vitalii_kalinichenko
    @vitalii_kalinichenko 5 лет назад +6

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

  • @ВячеславЕвтеев-б6ч
    @ВячеславЕвтеев-б6ч 4 года назад +1

    Велик, Тимофей и творенья его -Велики...

  • @barkas2589
    @barkas2589 2 года назад

    Спасибо

  • @andrewskylone1052
    @andrewskylone1052 5 лет назад

    Офигенный препод

  • @alexandervalter
    @alexandervalter 4 года назад +1

    Ахуительный препод.

  • @Иван-ы2о9э
    @Иван-ы2о9э 3 года назад

    "Когда я структурным программированием занимался при вас, показывал там"... )))

  • @freelife1000
    @freelife1000 7 месяцев назад

    Спасибо, +- питон понял

  • @vitalmurashev1852
    @vitalmurashev1852 5 лет назад +30

    from youtube import tkhirianov
    from russia import все_учебные_заведения_страны
    def main():
    for x in tkhirianov.все_лекции():
    мечта(x)
    def мечта(текущая_лекция):
    for x in все_учебные_заведения_страны():
    x.append(текущая_лекция)
    if __name__ == "__main__":
    main()

    • @nobeing6242
      @nobeing6242 5 лет назад +13

      Traceback (most recent call last):
      ImportError: detected GOVNOVUZ_RF, does not accept
      NotImplementedError: not real мечта
      TranslateError: englishe is not defined
      EnvironmentError: a lot of stupid people

    • @mikktarrasque1612
      @mikktarrasque1612 5 лет назад

      @@nobeing6242 откуда TranslateError то?
      Если вы про названия, то можно и кириллицей писать(нельзя, но можно) :D

    • @stenlymarshal9000
      @stenlymarshal9000 4 года назад

      #include
      using namespace::all_Lect
      all_Lect allLEct_of_Khirianov;
      main()
      {
      setlocale(LC_ALL , "RUS");
      unsigned int RES = allLEct_of_Khirianov.thisLect.NEW_L(student::good_STUD);
      int DEL = allLEct_of_Khirianov.thisLect.NEW_L(student::the_MostBAD_STUD);
      //------------------------------------
      allLEct_of_Khirianov.nextSEMESTR(RES);
      allLEct_of_Khirianov.delete_BAD-STUD(DEL);
      //------------------------------------
      return 0;
      };

  • @stepan-klyukin
    @stepan-klyukin 3 года назад +1

    "Ну вы это отпразднуете торжественным ботом в общежитии..."

  • @dharmanam9263
    @dharmanam9263 5 лет назад

    Супер. СПАСИБО!

  • @danxai
    @danxai 5 лет назад +3

    я ваши лекции своему генеральному директору показал.

  • @romanticroman11
    @romanticroman11 11 месяцев назад

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

  • @Magnitikus
    @Magnitikus 5 лет назад +1

    Подскажите import где ищет модули? В локальной папке или во вложенных тоже? И например если рядом две папки с разными проектами но файлы(модули) с одинаковыми именами какой подключиться? Разъяснит кто знает пожалуйста? Или сылку где это доступно разъяснено.

  • @АндрейТарабукин-п6д

    Какой дистрибутив линукса стоит у Тимофея?

  • @Алексей-р2л9д
    @Алексей-р2л9д 5 лет назад

    Ура!

  • @ingvardkas5374
    @ingvardkas5374 4 года назад +1

    а что за значок золотистый у Вас?

    • @dmitriynayanov6428
      @dmitriynayanov6428 4 года назад

      предположу, что значок выпускника МФТИ

  • @AquaDiskoteque
    @AquaDiskoteque 5 лет назад +1

    на обработчики js похожи ивенты тут.

  • @ИванДьяченко-ю5т
    @ИванДьяченко-ю5т 4 года назад

    "Лекционная аудитория не пустя с парочкой ботанов" ,,😀😀😀

  • @wolfich4684
    @wolfich4684 5 лет назад

    Тимофей, вопрос ни по лекции ... Зачем клавиатуру к ноутбуку подключили если на ноутбуке есть клавиатура? Задавался вопросом об эффективности работы на ноутбучной и обычной клавиатуре ..

    • @conag9864
      @conag9864 5 лет назад +2

      Кому как удобнее

    • @Tubik123bubik
      @Tubik123bubik 5 лет назад

      Он говорил, что печатает в слепую. Но невозможно печатать в слепую, если клавы меняются ПК-десктопная на ноутбууную.

  • @Lunathris
    @Lunathris 5 лет назад +1

    Студент: "А вот как бы удалить последний элемент списка?"
    Тимофей Фёдорович: "Да всё просто! Надо его пОпнуть."

  • @МаксимДубенко-в4т
    @МаксимДубенко-в4т 5 лет назад

    А какие горячие клавиши, чтоб сделать доску по ширине экрана моего монитора?

  • @TOFTOPOBZORXFACT
    @TOFTOPOBZORXFACT 4 года назад

    А зачем в 50:20 делать bar(2,2) == 4, если можно сделать bar(2,2) != 4 и не писать else. И мы говорим если bar() не равен должной сумме, то пусть вылезет ошибка, а иначе не произойдет ничего и программа продолжит работать.(не нужен положительный ответ)

    • @S1r3mAccount
      @S1r3mAccount 3 года назад

      Всё так. Но для понимания проще позитивные условия.

  • @ekaterinakuzmina4932
    @ekaterinakuzmina4932 4 года назад +1

    Тимофей, очень бы хотелось, чтобы не только Васи, Пети и Коли были примерами тех, кто что-то делает, но также Маши, Тани и Лены. В остальном - все превосходно.

  • @i.am.rossalex
    @i.am.rossalex 4 года назад

    Было бы очень неплохо, если бы этот курс лекций был в 20 минутном сжатом варианте для тех, кто вкуривает с первого быстрого раза :) Потому как эти лекции рассчитаны на массы и то, что можно объяснить за 20 сек, объясняется за 20-30 минут. Устал смотреть... И да, маэстро, "что-то серьезное" можно написать за 2 недели в одиночку! 15 лет практики дают такие возможности.

    • @demoshouse7909
      @demoshouse7909 4 года назад +2

      Смотрю лекции на скорости 2х, это уже 30-40 минут. Вполне комфортно смотрится.

  • @_pheax
    @_pheax 4 года назад +1

    Спасибо