⚡️ Скачиваем видео с ютуба
Модуль pytube позволяет загружать видео с YouTube, фильтровать их по качеству и даже загружать аудио отдельно от видео.
Установка:
Подробнее весь функционал описан на сайте документации. А исходный код можно найти на странице github.
#миниурок #pytube
Модуль pytube позволяет загружать видео с YouTube, фильтровать их по качеству и даже загружать аудио отдельно от видео.
Установка:
pip install pytube
Библиотека поддерживает консольную версию программы. Например, pytube <link>
скачает видео и сохранит в текущей папке.Подробнее весь функционал описан на сайте документации. А исходный код можно найти на странице github.
#миниурок #pytube
⚡️ Задачка с собеседования
Условие:
Ваша цель — написать функцию, которая находит недостающие буквы английского алфавита.
На вход идут только символы английского языка в нижнем регистре. Возвращаемое значение — строка из недостающих символов.
Пример:
findmissingletters('abc') -> defghijklmnopqrstuvwxyz
findmissingletters('mnopqrstuvwxyz') -> abcdefghijkl
findmissingletters('acegikmoqsuwy') -> bdfhjlnprtvxz
Усложнение: строка может принимать символы в верхнем и нижнем регистре, а также они могу повторяться.
📌 Пишите ваше решение в комментариях. Решение будет через 4 часа на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша цель — написать функцию, которая находит недостающие буквы английского алфавита.
На вход идут только символы английского языка в нижнем регистре. Возвращаемое значение — строка из недостающих символов.
Пример:
findmissingletters('abc') -> defghijklmnopqrstuvwxyz
findmissingletters('mnopqrstuvwxyz') -> abcdefghijkl
findmissingletters('acegikmoqsuwy') -> bdfhjlnprtvxz
Усложнение: строка может принимать символы в верхнем и нижнем регистре, а также они могу повторяться.
📌 Пишите ваше решение в комментариях. Решение будет через 4 часа на этом канале. 👇
#Задачка_с_собеседования
⚡️ Копируем файлы с помощью shutil
shutil — модуль, для выполнения высокоуровневых операций над файлами или коллекциями файлов.
• copyfile, copy, copy2 — методы для копирования файлов. copyfile копирует данные внутри файла обязательно в другой файл, а copy и copy2 могут принимать на выход — папку.
copy2 отличается тем, что также копирует все метаданные, такие как время создания, изменения и т.д.
• copytree — копирует целую ветку файлов и папок. Все директории внутри директории будут скопированы в заданное место.
Метаданные, права доступа повторяются с помощью copystat(), а файлы — copy2().
• copystat — копирует время, флаги, права доступа и т.д.
#миниурок #shutil
shutil — модуль, для выполнения высокоуровневых операций над файлами или коллекциями файлов.
• copyfile, copy, copy2 — методы для копирования файлов. copyfile копирует данные внутри файла обязательно в другой файл, а copy и copy2 могут принимать на выход — папку.
copy2 отличается тем, что также копирует все метаданные, такие как время создания, изменения и т.д.
• copytree — копирует целую ветку файлов и папок. Все директории внутри директории будут скопированы в заданное место.
Метаданные, права доступа повторяются с помощью copystat(), а файлы — copy2().
• copystat — копирует время, флаги, права доступа и т.д.
#миниурок #shutil
⚡️ Работаем с путями с помощью os.path
os.path — низкоуровневый модуль для работы с файловыми путями. Мы рекомендуем работать с ранее упомянутым pathlib, но os.path стоит упомянуть поскольку он довольно часто встречается в проектах.
join(path, *paths) — соединяет все аргументы в один путь. Стоит отметить, что в unix-подобных системах и в windows пути отличаются и это может создать множество проблем с переносом скрипта на разные платформы.
expanduser(path) — заменяетили user на папку с пользовательскими данными. В linux это переменная HOME, а в Windows — USERPROFILE.
Больший функционал можно просмотреть на сайте документации.
#миниурок #os
os.path — низкоуровневый модуль для работы с файловыми путями. Мы рекомендуем работать с ранее упомянутым pathlib, но os.path стоит упомянуть поскольку он довольно часто встречается в проектах.
join(path, *paths) — соединяет все аргументы в один путь. Стоит отметить, что в unix-подобных системах и в windows пути отличаются и это может создать множество проблем с переносом скрипта на разные платформы.
expanduser(path) — заменяет
Больший функционал можно просмотреть на сайте документации.
#миниурок #os
⚡️ Задача с собеседования
Условие:
Ваша задача — написать код, который получает словарик типа «Имя : [массив оценок]».
Необходимо среди всех значений словаря найти ученика с максимальным и минимальным средним баллом, а после — вывести его имя вместе со средним балом.
Пример:
Вход:
#Задачка_с_собеседования
Условие:
Ваша задача — написать код, который получает словарик типа «Имя : [массив оценок]».
Необходимо среди всех значений словаря найти ученика с максимальным и минимальным средним баллом, а после — вывести его имя вместе со средним балом.
Пример:
Вход:
{"Mark":[2, 6, 9, 2], "Kevin": [11, 8], "John":[7, 4, 11, 5, 8], "Max": [2, 4, 5]}
Вывод: Kevin: 9.50, Max: 3.67#Задачка_с_собеседования
⚡️ Документируем код
Документация упрощает жизнь разработчикам и помогает понять, что делает определённые функция, класс или модуль без необходимости читать код целиком.
Если вы используете модули, то её можно увидеть в IDE, наведя на класс, метод или саму библиотеку — чаще всего там уже присутствует документация.
Что бы сделать свой код более понятным, необходимо написать """Информация о том, что делает метод""" под определением объекта.
Также, вы можете получить информацию, используя атрибут __doc__.
#теория #документация
Документация упрощает жизнь разработчикам и помогает понять, что делает определённые функция, класс или модуль без необходимости читать код целиком.
Если вы используете модули, то её можно увидеть в IDE, наведя на класс, метод или саму библиотеку — чаще всего там уже присутствует документация.
Что бы сделать свой код более понятным, необходимо написать """Информация о том, что делает метод""" под определением объекта.
Также, вы можете получить информацию, используя атрибут __doc__.
#теория #документация
⚡️ Упрощаем классы с данными
Модуль dataclasses позволяет упростить работу с созданием классов для хранения информации.
Так, декоратор dataclass самостоятельно определяет init, repr, eq и, если задано — сравнение (le, gt, etc), hash и запрет на изменение объекта.
Также стоит отметить, что все значения должны иметь тип, иначе они будут проигнорированы. И ещё — это обычный класс, значит вы по-прежнему можете добавлять свои методы.
Более развёрнуто — на сайте документации.
#миниурок #dataclasses
Модуль dataclasses позволяет упростить работу с созданием классов для хранения информации.
Так, декоратор dataclass самостоятельно определяет init, repr, eq и, если задано — сравнение (le, gt, etc), hash и запрет на изменение объекта.
Также стоит отметить, что все значения должны иметь тип, иначе они будут проигнорированы. И ещё — это обычный класс, значит вы по-прежнему можете добавлять свои методы.
Более развёрнуто — на сайте документации.
#миниурок #dataclasses
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать функцию, которая находит сумму всех цифр в числе. На вход также могут пойти и числа меньше нуля — их стоит переводить в неотрицательное числа.
Пример:
sumnum(1234) → 10
sumnum(-9876) → 30
sumnum(7013) → 11
sumnum(100001) → 2
P.S. Знак «_» в числах может использоваться для упрощения чтения пользователем. 100000000 — это то же самое, что и 100000000
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая находит сумму всех цифр в числе. На вход также могут пойти и числа меньше нуля — их стоит переводить в неотрицательное числа.
Пример:
sumnum(1234) → 10
sumnum(-9876) → 30
sumnum(7013) → 11
sumnum(100001) → 2
P.S. Знак «_» в числах может использоваться для упрощения чтения пользователем. 100000000 — это то же самое, что и 100000000
#Задачка_с_собеседования
⚡️ Абстрактные классы
Абстрактные классы — это объекты, которые содержат, как ни странно, абстрактные методы.
Создаются они с помощью модуля, предустановленного в abc. Классы создаются с помощью ABC (или ABCMeta), а не реализованные методы — обозначаются декоратором abstractmethod.
Если же вы не желаете импортировать какие-либо библиотеки, воспользуйтесь NotImplementedError в тех методах, которые требуют реализации.
Подробнее — на сайте документации.
#миниурок #abc
Абстрактные классы — это объекты, которые содержат, как ни странно, абстрактные методы.
Создаются они с помощью модуля, предустановленного в abc. Классы создаются с помощью ABC (или ABCMeta), а не реализованные методы — обозначаются декоратором abstractmethod.
Если же вы не желаете импортировать какие-либо библиотеки, воспользуйтесь NotImplementedError в тех методах, которые требуют реализации.
Подробнее — на сайте документации.
#миниурок #abc
⚡️ Python PyQuickie — дополнение к google chrome для практики в программирование на Python
PyQuickie — расширение одного из разработчика на reddit, которое поможет в простой форме улучшить свои знания в Python.
Оно выдаёт задачу по выбранному уровню сложности от самого лёгкого, до самого тяжёлого.
Вы пишите код для достижения определённой цели, а программа — сама выполняет тесты и уведомляет вас о результатах.
Расширение открывается поверх сайта, что позволяет отвлечься после тяжёлого дня и быстро решить парочку задач по Python.
На примере выше вы видите решение простой задачи, предложенной приложением.
#инструменты
PyQuickie — расширение одного из разработчика на reddit, которое поможет в простой форме улучшить свои знания в Python.
Оно выдаёт задачу по выбранному уровню сложности от самого лёгкого, до самого тяжёлого.
Вы пишите код для достижения определённой цели, а программа — сама выполняет тесты и уведомляет вас о результатах.
Расширение открывается поверх сайта, что позволяет отвлечься после тяжёлого дня и быстро решить парочку задач по Python.
На примере выше вы видите решение простой задачи, предложенной приложением.
#инструменты