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

  Рет қаралды 104,653

Тимофей Хирьянов

Тимофей Хирьянов

Күн бұрын

Пікірлер
@amrklp
@amrklp 5 жыл бұрын
Лучший сериал 2019 года.
@sir_incognito
@sir_incognito 5 жыл бұрын
16:47))
@andhackerand1794
@andhackerand1794 4 жыл бұрын
игра престолов нервно курит в сторонке)
@СеменКиригов
@СеменКиригов 4 жыл бұрын
+2020
@iritaka
@iritaka 4 жыл бұрын
Тайм-коды: Работа с уже написанным Кодом 3:23 плохой код bad_gun_1.py. Взгляд сверху. Архитектура кода. (-) программный код находится вне функций и к тому же он разбит на кусочки 5:09 (-) не соблюдается РЕР 8. (-) именование классов и функций. Название должно отражать содержимое 7:28 (-) глобальные переменные - зло 8:14 (-) функция new_game. Что она должна делать? Запускать новую игру 8:42 (-) в - плохое название даже для локальной переменной 10:19 (-) функция new_game зацикливает сама себя по времени и получается, что она совсем не уходит в mainloop()(не отдает управление главному циклу) 11:49 (-) возможности перестартовать игру нет 12:15 (-) до mainloop() дело не доходит, пока игра не закончится, а она не закончится никогда 12:35 (-) в наличии рудименты, атавизмы неработающих кусков кода 13:37 (-) ход выполнения 15:02 что внутри классов. class ball 15:42 убирать надо пофиксенные комментарии 17:00 во всех функциях, методах писать комментарий, за что он отвечает 18:10 плохой код bad_gun_2.py. 19:46 отладочная информация. В релизной версии надо убирать дебажную печать. Разные способы организации дебажной отладочной печати: 1) глобальная переменная DEBUG 2) встроенные средства 22:08 вместо кусочков кода надо делать 1 функцию main. Разместить её, например, в самом верху. И в самом низу вызвать её. В ней явным образом будут написаны какие переменные являются глобальными уровня модуля 24:39 допустимо CAPSLK (UPPER CASE), когда опасная конструкция, глобальная константа 25:52 соглашение именования, чтобы отличить глобальную константу от глобальной переменной: переменные (g_...), константы (UPPER_CASE), функция (snake_style), класс (CamelStyle) 29:05 функция SHAR 32:46 name convention. Соглашение об именовании, для этого и нужно ООП. Наследование, иерархия возможных объектов, целей. Программа не масштабируемая (scalable) 37:35 хороший код gun.py 37:50 абстрактные базовые классы abc (Abstract Base Classes) 39:58 Folding -> Collapse all # свернуть всё 41:36 Frame - рамка. Невидимый виджет, необходимый для группировки других виджетов. Сам фрэйм не отображается. Он как директория 43:37 Singleton. Шаблон (паттерн) проектирования синглтон. Класс, который всегда существует только в одном инстансе 44:54 ситуация с константами 48:06 функция new_game в плохом коде №2 48:34 вертикальная черта далеко вправо в PyCharm - РЕР 8 максимальная длина строки 79 символов 49:01 функция длиной более 50 строк - неудобочитаемая. Лучше, если она помещается на один экран 51:18 ответственность. Принцип единственной ответственности 51:45 любой алгоритм можно реализовать при помощи ветвления (условного поведения) и циклов 54:12 возврат к хорошему коду gun.py. Чёткое разделение обязанностей. class GunGameApp 56:55 у класса в конструкторе создается, в качестве его члена, подкласс, выполняющий за него делегируемый функционал 57:42 BattleField(self) в init в MainFrame - ему пробрасывается сам MainFrame через (self). Т.е. BattleField ->(self) имеет ссылку на MainFrame для взаимодействия. Понять, чем занимается хороший класс можно просто посмотрев на его конструктор 58:57 class BattleField 59:42 super().__init__ () # запуск конструктора предка. super(). - возвращает ссылку на самого себя, но как предка 1:00:06 наследование. Подстановочный критерий Барбары Лисков. Производный класс должен делать то самое, что делал базовый. Производный класс является частным случаем базового класса 1:04:23 если класс является наследником другого базового класса, чтобы все работало, должен быть вызван конструктор базового класса. Иначе полноценного наследования не произойдет, потому что не будут созданы базовые атрибуты. 1:09:46 параллельные события без main(). внутри программы событийной вовсю используются события. Иначе можно делать централизованный цикл 1:11:59 class Agent (ABC). Зелёный крокодил (@abstractmethod) Это декоратор - объявление, что этот метод является абстрактным. Это значит, что его нужно обязательно реализовать. 1:14:02 pass_event - такая штуковина для пустого события 1:15:13 запуск чистого кода gun.py
@johnd1431
@johnd1431 5 жыл бұрын
Какой же позитивный и здоровский вы мужик, Тимофей. спасибо за бесплатные лекции, долгих лет вам жизни!
@ДмитрийХорькин
@ДмитрийХорькин 5 жыл бұрын
Прошло 5 минут от видео, уже ору! Лучший препод по программированию ever. Во первых - чувство юмора, с учениками на одной волне, во вторых сразу говорит, что не всё знает и так далее, очень хорошую атмосферу всем этим создаёт))
@n3sqinn
@n3sqinn 5 жыл бұрын
как я рад что это высветилось у меня в реках
@ander1475
@ander1475 5 жыл бұрын
Мне понравилось. Как программист со стажем, на разборе поделок от студентов посмеялся от души))) Спасибо) Ну ничего.. когда-нибудь, дай бог, они посмотрят что делали в молодости, и тоже улыбнутся) Все когда-то начинали с SHAR и PUSHKA =)))
@isos6534
@isos6534 5 жыл бұрын
а можете фидбек че они там смешного пилили?
@Галчонок-в3т
@Галчонок-в3т 4 жыл бұрын
@@isos6534 да он же программист со стажем, нахуй ему перед тобой оправдываться
@dima06star
@dima06star 4 жыл бұрын
@@isos6534 У студента двоечника бомбануло? Препод же объяснил: код - нечитаемое говнище, не понятно как работающее.
@reisders
@reisders 2 жыл бұрын
@@dima06star да поч бомбануло то? может он не программист и ему интересно
@nick_bezverkhyi
@nick_bezverkhyi 5 жыл бұрын
Крутейший преподаватель, смотрю со слезами на глазах, ибо я уже пару-тройку лет как профессиональный программист, но ВУЗ мне не дал толком ничего. Вашим студентам очень повезло! Так это ещё учитывая то, что я на Java пишу и мне Phyton на данный момент не очень интересен. Но подача настолько затягивает и привлекает, что посмотрел пару лекций и в принципе смогу написать какую-то игрушку на питоне. Спасибо за качественный контент.
@Галчонок-в3т
@Галчонок-в3т 4 жыл бұрын
МФТИ - самый топовый ВУЗ страны.
@str1k3rz0r
@str1k3rz0r 5 жыл бұрын
верните мои 18 лет, хочу на первый курс туда где преподает Хирьянов. К своим 28 уже бы software engineerом был бы. Однозначно лайк, смотрю, впитываю!
@m5xgaming471
@m5xgaming471 5 жыл бұрын
К сожалению питон уже всё
@timohamedvedev237
@timohamedvedev237 5 жыл бұрын
@@m5xgaming471 , с чего такие выводы? Я только собираюсь его изучать. Думаешь не актуально?
@nic0n0R
@nic0n0R 5 жыл бұрын
@@m5xgaming471 питон сейчас наоборот набирает популярность Многие преподаватели в моём универе сейчас его активно используют в своих работах, особенно питон джанго
@m5xgaming471
@m5xgaming471 5 жыл бұрын
@@nic0n0R Вот именно. Ну изучаешь ты его, как миллионы других. И куда ты пойдёшь? На фриланс? Сражаться за любой заказ?
@АртурГареев-х2д
@АртурГареев-х2д 5 жыл бұрын
@@m5xgaming471 а что ты будешь делать, изучая непопулярный язык? Месяцами искать заказ?
@OmgFiny
@OmgFiny 5 жыл бұрын
Новая доза мозговой деятельности на сегодня! Спасибо 🐍
@AnatolikZX
@AnatolikZX 5 жыл бұрын
Топовый контент, прекрасная подача =D
@handleftman
@handleftman 5 жыл бұрын
я хоть не студент уже, но спасибо за видео!
@inkorcoder7551
@inkorcoder7551 5 жыл бұрын
я вообще ни разу не питонщик, но просмотрел все лекции, и теперь я питонщик :D (нет конечно, но лекции очень интересные)
@АндроидКузьмич
@АндроидКузьмич 5 жыл бұрын
Если ты думаешь как питонщик, выглядишь как питонщик, крякаешь как питонщик - значит ты питонщик!
@wekanex
@wekanex 5 жыл бұрын
Если ты проглатываешь пищу целиком то ты питонщик ) поздравляю
@Настя-д1д3ш
@Настя-д1д3ш 5 жыл бұрын
класс, респект и уважуха за подачу материала)))
@_pheax
@_pheax 4 жыл бұрын
спасибо ! классная подача информации
@Snake_SOFT
@Snake_SOFT 5 жыл бұрын
Я, вот смотрю и ничего не понимаю, но хотя может быть мне ещё рано это понимать. Мне нравится как, вы, всё объясняете.
@OSKOL_24
@OSKOL_24 5 жыл бұрын
главное желания интерес интерес-ето прогресс желания-действия поэтому желаю тебе успехов)
@ЕгорМитрофанов-г7ъ
@ЕгорМитрофанов-г7ъ 5 жыл бұрын
Тимофей, чувак заебок. Смотрю его с удовольствием.
@ВладиславЕгоров-п4ю
@ВладиславЕгоров-п4ю 5 жыл бұрын
5:57 Тимофей Фёдорович, подскажите, пожалуйста, где найти эти видео
@tkhirianov
@tkhirianov 5 жыл бұрын
kzbin.info/www/bejne/opzYgJh8mMZmj6c
@ТемирланАбдрахманов-о6ы
@ТемирланАбдрахманов-о6ы 5 жыл бұрын
Спасибо за принципы SOLID :)
@irkost
@irkost 5 жыл бұрын
лайк не глядя
@bluesnake00
@bluesnake00 4 жыл бұрын
Говнокод! 🤣🤣🤣🤣 Топовая лекция, спасибо за инфу, вы отличный преподаватель!
@PROPHESSOR
@PROPHESSOR 4 жыл бұрын
Засланная пушка среди шаров просто убила XD
@U2VR_Channel
@U2VR_Channel 5 жыл бұрын
"Лучший" camelCase все таки у Java. Классы с большой буквы, переменные и методы с маленькой, константы капсом с подчеркиванием. Пользуюсь им и на C++ и на C#. Позволяет отличать статические классы от объектов, у функций почти всегда ставятся скобки возле названия, так что тоже особых проблем не вызывает (только при колбэках/делегатах, где надо именно функцию как аргумент передать, что используется крайне редко). У Python же вообще какая-то каша рекомендована (как и у C#, к слову, у c/c++ вообще "давай все в нижнем регистре одним словом пиши"): Python and Ruby both recommend UpperCamelCase for class names, CAPITALIZED_WITH_UNDERSCORES for constants, and lowercase_separated_by_underscores for other names.
@Oleksiy777
@Oleksiy777 3 жыл бұрын
а ветвление match в python 3.10 переменные с подчеркиванием не поддерживает.
@sokxyz
@sokxyz 5 жыл бұрын
подача хорошая
@andrey7530
@andrey7530 5 жыл бұрын
очередное спасибки
@shadowzyxi758
@shadowzyxi758 5 жыл бұрын
А какая версия линукса у вас стоит?
@barkas2589
@barkas2589 2 жыл бұрын
Спасибо
@Rostislav27rus
@Rostislav27rus 5 жыл бұрын
с функций по типу OVAL( ) и SHARIK( ) выпал))
@АрсенийМракобесов-з5г
@АрсенийМракобесов-з5г 5 жыл бұрын
чё смеялся как бешеный до слёз?
@yaroslav5168
@yaroslav5168 5 жыл бұрын
В библиотеке graph есть функция oval() ... cs.mipt.ru/python #лабороторки :) cs.mipt.ru/python/lessons/lab3.html #здесь для решения используется граф Скачай его и поройся в нём, там должен быть oval() (я его использовал, он работает)
@Rostislav27rus
@Rostislav27rus 5 жыл бұрын
@@yaroslav5168 окей, слово oval существует. Что насчёт sharik?
@yaroslav5168
@yaroslav5168 4 жыл бұрын
@@Rostislav27rus Шарика там нет этот пёс убежал в Простоквашино :) Что на счёт SHARIK? Я не знаю. :( А если серьёзно то овал() это функция для создания ВСЕХ кругленьких :) обьектов и что ему помешало юзать один лишь овал не понятно... А вот после лазанья по коду мне стало ещё не понятнее... ЗАЧЕМ он это писал? def circle(x, y, R): x1 = x - R; y1 = y - R x2 = x + R; y2 = y + R return oval(x1, y1, x2, y2) #---------------------------------- def oval(x1, y1, x2, y2): x1, y1 = transformCoord ( x1, y1 ) x2, y2 = transformCoord ( x2, y2 ) _oval = _C.create_oval(x1, y1, x2, y2, outline = _penColor, width = _penSize, fill = _brushColor) return _oval
@Rostislav27rus
@Rostislav27rus 4 жыл бұрын
@@yaroslav5168 ой, я в пайтоне не так чтобы шарю, так что хз
@question1539
@question1539 5 жыл бұрын
НЕ соблюдён pep 8. Так сложно нажать ctrl+alt+l
@headcliff07
@headcliff07 5 жыл бұрын
Спасибо!!!!
@АндрейКозюльский
@АндрейКозюльский 5 жыл бұрын
Я же гуманитарий. Почему я смотрю это и не могу остановиться?)
@lemonz1616
@lemonz1616 5 жыл бұрын
В одной из лекций говорилось что в программировании -- также есть гуманитарные элементы, и их довольно много.
@freelife1000
@freelife1000 4 жыл бұрын
SHAR SILA!!!
@vatmanyan
@vatmanyan 4 ай бұрын
А что, ну второй вариант был как раз отличным кандидатом под рефакторинг
@АндрейВоинов-п5ш
@АндрейВоинов-п5ш 5 жыл бұрын
Если не трудно могли бы поделиться.Кому вы проводите данные лекции(1 курс 2 мб еще выше)прото у нас нет ЯП от слова совсем приходится все учить в одиночку.Говорят ЯП-ы начнуся со 2 курса но ждать пока кто-то что-то объяснит глупо.Эх......Я достаточно не плох в программировании,но из-за забива на ЕГЭ попал как я понял не в лучшее место.Если знаете как можно перевестись в вуз получше посоветуйте что-нибудь. Препод адекватный и юмором мне такого не хватает.Для тех кто говорит,что он не шарит скажу так,человек пытается и старается объяснить у него это получается достаточно не плохо перед тем как говорить что он отстой знайте для кого-то такого препода рил не хватает
@hiyoutube6769
@hiyoutube6769 5 жыл бұрын
1:28 зачем извинятся?
@000ProstoFan000
@000ProstoFan000 5 жыл бұрын
Зачем писать такой комент?
@hiyoutube6769
@hiyoutube6769 5 жыл бұрын
@@000ProstoFan000 извини чувак, я просто прогорел сегодня чуток , и все
@pavelkozlov6877
@pavelkozlov6877 5 жыл бұрын
thumbs up!) for pushka pricel)))
@hammerhead83
@hammerhead83 5 жыл бұрын
Про Singleton. Объект синглтона может или быть в единственном экземпляре, или не быть вообще. Объекты которые всегда существуют только в единственном числе - статические!
@zhenshuang
@zhenshuang 5 жыл бұрын
К чему это уточнение? Прямым текстом сказано на 44:02 "Если мы уж и создали класс, то он единственный". Ты жопой слушал?
@hammerhead83
@hammerhead83 5 жыл бұрын
@@zhenshuang Твоей жопой - упырь!
@zhenshuang
@zhenshuang 5 жыл бұрын
@@hammerhead83 обиженка
@dmitryafanasiev3597
@dmitryafanasiev3597 5 жыл бұрын
говнокод трудно допиливать!..)
@sir_incognito
@sir_incognito 5 жыл бұрын
из говна конфетку?)
@neonchik6768
@neonchik6768 5 жыл бұрын
ООО знакомая тема
@neonchik6768
@neonchik6768 5 жыл бұрын
Особенно свой говно код
@kavelquu
@kavelquu 4 жыл бұрын
16:22 он рофлит? Просто 2 тут это сокращение "to"
@MyFearIsMyBlue
@MyFearIsMyBlue 4 жыл бұрын
гениально! =) вас надо минойскую письменности дешифрововать!
@kavelquu
@kavelquu 4 жыл бұрын
@@MyFearIsMyBlue да ландо, про то, что 2 значит to наверно знает каждый, кто хоть чуть-чуть учил английский
@ДимаТВАТВА
@ДимаТВАТВА 4 жыл бұрын
@@kavelquu вообще-то "Two"
@kavelquu
@kavelquu 4 жыл бұрын
@@ДимаТВАТВА нет
@НикитаКайбышев
@НикитаКайбышев 4 жыл бұрын
Делайте клип на 1:06:03
@ЕгорМитрофанов-г7ъ
@ЕгорМитрофанов-г7ъ 5 жыл бұрын
А теперь представьте всю боль, когда приносят такой скрипт и говорят: вот тут при таких условиях происходит вот это, а мне нужно вон то, сделайте пожалуйста. И ты понимаешь, что лучше всё написать с нуля, но на это нет времени и приходится к этому дописывать "новый функционал". И во время процесса допиливания испытываешь нереальную боль.
@ВладиславГришин-ш7ш
@ВладиславГришин-ш7ш 5 жыл бұрын
ржу. сам сейчас ковыряюсь не в своем коде. эмоции аналогичные. )) да и в своем бы ковырялся тоже самое было
@dsgnrr7870
@dsgnrr7870 4 жыл бұрын
Мм онлайн компилятор, круто
@ПетрФролов-е6г
@ПетрФролов-е6г 5 жыл бұрын
Не очень хороший программист по Python, но хороший преподаватель!
@DART2WADER
@DART2WADER 5 жыл бұрын
kzbin.info/www/bejne/bZ7Ng6tsgJZmhbM Тройной brainfuck, или что такое безумие - Артём - Кашканов Комп на реле.
@RomRom_Guitar
@RomRom_Guitar 5 жыл бұрын
Никак не получается запустить gun.ру. Не импортирует hit_check (No module named 'hit_check'). Если его комментирую, то запускается и работает до первого выстрела. Собственно где этот hit_check впервые и встречается. pip install hit_check тоже не хочет в терминале. Куча красных ошибок. Система Linux mint 19.2. Кто-то может тоже столкнулся? Как решили? Спасибо заранее.
@RomRom_Guitar
@RomRom_Guitar 5 жыл бұрын
Ой, всё. Нашёл. Это оказывается не метод, а файл, который также выложен.
@andrey7530
@andrey7530 5 жыл бұрын
@@RomRom_Guitar молодца ))
@paveldumavin5068
@paveldumavin5068 5 жыл бұрын
прикольно
@only6077
@only6077 5 жыл бұрын
Ищу кто мне напишет Код для игры, либо же поможет переписать немножко КОД По ценам договоримся Либо же Тимофей Хирьянов хочу что бы вы работали на меня, Предоплата сомо собой вам будет видно что вы человек опытный. Очень нуждаюсь в таких людях!
@vladkrolik2700
@vladkrolik2700 2 жыл бұрын
Преподаватель очень Либеральный, надеюсь нету из-за этого проблем на работе
@romanticroman11
@romanticroman11 Жыл бұрын
Таких игр с оружием как в лесу деревьев . Учат создавать игры создающие мировоззрение разрушения , убийства , тоесть разложения , деградация личности пользователей таких игр . Тоесть таких программистов можно отнести к преступникам .
@zerocool4eg
@zerocool4eg 5 жыл бұрын
а почему в питоне сам бог велел снейк кейс использовать, если он назван в честь Монти Пайтона и к змеям не имеет никакого отношения?
@zerocool4eg
@zerocool4eg 5 жыл бұрын
@Валентин ещё 1 ... Вот из-за таких как ты и стала на лого змея, и про змей говорить в контексте пайтона начали ...
@freelife1000
@freelife1000 5 жыл бұрын
1.08
@Александр-б1б6ш
@Александр-б1б6ш 5 жыл бұрын
Ой не люблю ткинтер
@ДмитрийФролов-к2г
@ДмитрийФролов-к2г 5 жыл бұрын
+
@БольшойОтец-з2ы
@БольшойОтец-з2ы 5 жыл бұрын
Лучше бы php втирал
@BlackShadow_86
@BlackShadow_86 5 жыл бұрын
Я работаю и со змеем и со слоном, для веба php, python для бзкэнда и работы с системой.
@БольшойОтец-з2ы
@БольшойОтец-з2ы 5 жыл бұрын
@@BlackShadow_86 Смэрть грязнокровкам Только js и php
@riyan3704
@riyan3704 5 жыл бұрын
Зачем открывал видос если хочешь php
@БольшойОтец-з2ы
@БольшойОтец-з2ы 5 жыл бұрын
@@riyan3704 Хочу кабачок
Практика программирования на Python 3, лекция №11
1:15:27
Тимофей Хирьянов
Рет қаралды 37 М.
Практика программирования на Python 3, лекция №12
1:22:16
Тимофей Хирьянов
Рет қаралды 40 М.
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН
Cat mode and a glass of water #family #humor #fun
00:22
Kotiki_Z
Рет қаралды 42 МЛН
Алгоритмы на Python 3. Лекция №8
1:18:29
Тимофей Хирьянов
Рет қаралды 233 М.
Практика программирования на Python 3, лекция №13
1:16:46
Тимофей Хирьянов
Рет қаралды 35 М.
NumPy - ГЕРОИ НЕ НОСЯТ ПЛАЩИ
13:11
мыш
Рет қаралды 9 М.
Python - полный курс для начинающих. Этот навык изменит твою жизнь.
5:27:42
Как устроен PYTHON
37:44
про АйТи | IT Pro
Рет қаралды 35 М.
Информатика на Python, семестр 2, лекция 1, ФБВТ МФТИ (2024)
1:18:14
Практика программирования на Python 3, лекция №7
1:07:17
Тимофей Хирьянов
Рет қаралды 58 М.
Информатика, лекция 1/10 (ФБВТ МФТИ)
1:14:30
Тимофей Хирьянов
Рет қаралды 87 М.