Спасибо тебе! Это лучший канал по изучению программирования который я находил! Ты за 9 минут обьяснил больше, чем я узнал за 20-серийный курс на ютубе! Все с конкретными примерами, понятно и без воды! Однозначно лайк и подписка!
Материал для самого самого начала конечно которых сотни... Но у вас радует сама подача (грамотно представленная) и топовая озвучка. Вообще приятно слушать озвучку диктора, сразу видно отношение к аудитории (большинству пох* и мы слышим запинающегося, чавкаещего бутерброд челика за кадром) А тут-же всё оч приятненько и по домашнему)) Продолжайте нести знания в светлые умы ребята! С такой-же подачей как и сейчас, ибо вас на ютубчике мало...
Да, однозначно сделай пожалуйста еще ролик про ООП, очень доходчиво объяснил. хреновы хаудиХо и прочие тупо объясняют как написано в книгах, а ты разбираешь все до мелочей, очень помог твой ролик. Спасибо!
если в краце итералы это присвоемые значение, генератори это вроде про сикцл с ренджом, то есть от нуля до заднного чилса, могу ошибатся но поитался помоч
И второй вопрос вдогонку. Я взялся за изучение ООП, т.к. это действительно фундамент, но не могу понять, как применить этот подход в моей деятельности. Я пишу ботов для автоматизации веба через Selenium: перейти на сайт, кликнуть мышкой в нужный элемент, заполнить поле, скачать файл, отправить его и т.д. Можете пожалуйста подсказать пример?
Сравнение структурного кода и ООП в конце сделано так что бы ООП выглядел более выигрышно. Структурный код можно написать короче и он будет понятней чем ООП и короче на 6 строк. Например так: def summizer(arg1, arg2): if isinstance(arg1, list): return [*arg1, *arg2] elif isinstance(arg1, int): return arg1 + arg2 else: return f'{arg1}:{arg2}' arg1 = [1, 2, 3] arg2 = [4, 5, 6] print(summizer([1,2,3], [4, 5, 6])) print(summizer(2, 3)) print(summizer('Привет','RU-vid')) На таких коротких программах ООП проигрывает, его сила раскрывается на больших программах, где таких summizer-ов будет не одна сотня и становится трудно всё это охватить мысленным взором.
Ну значит ты тупой, практикуйся на том что увидел, пытайся понять каждую отдельную деталь, так например, если я хотел понять какой то момент из этого видео пересматривал раз 5-10.
Нет нет нет,не морочьте людям голову,не вводите в заблуждения ,или сами не разбирайтесь.Я не буду ходить вокруг да около,а машину свою выкиньте в помойку, и забудьте про такое сравнения. И так что такое ооп,и зачем это нужно.Да все просто,представьте что у вам нужна написать некую программу,и вот вы пишете свою программу,ваша программа постоянно что то берет проверяет,принимает,возвращает и т.д. И в какой-то момент,вы понимайте что уже написали так много кода,что уже сами плохо понимайте ,что от куда берется.И вы решайте все поместить в функции, вы переписали все в функции ,функции между собой взаимодействуют,и вроде все не плохо,и вы еще пишите функции, и в какой-то момент,вы опять понимаете что уже и в таком подходе начинайте путаться,в функциях,что кому возвращает и т.д. Вы решайте,что некие функции вы разнесет по отдельным файлам ,и будете их подключать по мере их необходимости.И тут вы понимаете ,что этих файлов стало столько,что вы опять начинайте путаться,что откуда приходит,а где что подключено.И вы становитесь в тупик,а что делать дальше.И тут как раз эту проблему решает ООП подход.ООП вам и поможет, в каждом классе будет определённые методы,определённые свойства.Все будет структурирована.Поэтому большие проекты,написаны на ооп,потому-что в процедурном стиле,это не реально сделать.Так же скажу,что ооп,как правило используется в коммерческих разработках,если у вас 200 строчек кода,можно спокойно обойтись без ооп,а вот если около 600,и более,тут стоит задуматься о ооп подходе.А птичек ,собачек,кошечек,выкиньте из головы)))
КОму нужен код с видео. class Car: count_of_wheels = 4 def __init__(self, color, speed, mark): self.color = color self.speed = speed self.mark = mark def drive(self, place): print(f'Машина марки {self.mark}, цвет {self.color}, едет в {place}' + f' со скоростью {self.speed} км/ч.') class FireTruck(Car): def __init__(self, color, speed, mark, blinker): super().__init__(color, speed, mark) self.blinker = blinker def pour_water(self): print('Поливаю водой! ') def drive(self, place): super().drive(place) print(f'Машина марки {self.mark}, цвет {self.color}, едет тушить {place}' + f' со скоростью {self.speed} км/ч.') if self.blinker: print('ВИУ, ВИУ, ВИУ!!! ') car1 = Car('синий', 110, 'Toyota') print(car1.mark) print(car1.speed) print(car1.color) car1.drive('Бишкек') print('А еще у нее, как и у всех машин', Car.count_of_wheels, 'колеса. ') car2 = FireTruck('красный', 150, 'Камаз', True) print(car2.mark) print(car2.blinker) car2.drive('Бишкек') car2.pour_water()
Символ "*" используется в питоне для вывода данных типа 'list' без квадратных скобок и запятых: asd = [1,2,3] print(asd) // [1,2,3] print(*asd) // 1 2 3