#реклама
Кажется, ты тоже это чувствуешь:
🔻 Пока ты работаешь — выходит пять новых тулзов и один фреймворк.
🔻 Все вокруг пишут идеальный код, растут. А ты просто пытаешься не потеряться.
🔻 Каждый второй уже запилил свой стартап и зарабатывает на нём — а ты всё ещё не знаешь, с чего начать.
Мне это знакомо. Поэтому я веду канал, где:
✅ Читаю всё подряд, чтобы ты читал только лучшее (иногда с мемами).
✅ Пишу про факапы, страхи и синдром «я не тяну» — потому что сам с этим живу.
✅ Рассказываю об идеях, проектах, карьерных поворотах — вдруг станет не так страшно что-то начать.
✅ Иногда просто делюсь мыслями — чтобы стало чуть легче и понятнее, куда вообще всё катится.
Если тебе это знакомо — залетай. Канал живой, честный, по делу (и немного про то, как не сойти с ума)
👉 @ai_tism
Кажется, ты тоже это чувствуешь:
🔻 Пока ты работаешь — выходит пять новых тулзов и один фреймворк.
🔻 Все вокруг пишут идеальный код, растут. А ты просто пытаешься не потеряться.
🔻 Каждый второй уже запилил свой стартап и зарабатывает на нём — а ты всё ещё не знаешь, с чего начать.
Мне это знакомо. Поэтому я веду канал, где:
✅ Читаю всё подряд, чтобы ты читал только лучшее (иногда с мемами).
✅ Пишу про факапы, страхи и синдром «я не тяну» — потому что сам с этим живу.
✅ Рассказываю об идеях, проектах, карьерных поворотах — вдруг станет не так страшно что-то начать.
✅ Иногда просто делюсь мыслями — чтобы стало чуть легче и понятнее, куда вообще всё катится.
Если тебе это знакомо — залетай. Канал живой, честный, по делу (и немного про то, как не сойти с ума)
👉 @ai_tism
Media is too big
VIEW IN TELEGRAM
Полезные модули Python
В этом ролике автор познакомит вас с полезными модулями Python. Вы научитесь работать со временем (модуль time), научитесь сохранять сложные объекты в файл и потом их оттуда считывать (модуль pickle), научитесь копировать объекты (модуль copy), научитесь работать со случайными числами (модуль random), научитесь определять системное ли слово (модуль keyword), а также узнаете как работать с системными командами (модуль sys).
Смотреть это видео на youtube: youtu.be/DEti1-BQpPU
В этом ролике автор познакомит вас с полезными модулями Python. Вы научитесь работать со временем (модуль time), научитесь сохранять сложные объекты в файл и потом их оттуда считывать (модуль pickle), научитесь копировать объекты (модуль copy), научитесь работать со случайными числами (модуль random), научитесь определять системное ли слово (модуль keyword), а также узнаете как работать с системными командами (модуль sys).
Смотреть это видео на youtube: youtu.be/DEti1-BQpPU
Итерируемый счетчик
Еще один классный итератор из
В аргументах можно задать значения
Обычно
#itertools
Еще один классный итератор из
itertools
— это count
, который генерирует бесконечную последовательность чисел.В аргументах можно задать значения
start
и step
: первый отвечает за начальное значение, а второе за шаг, как и в range
.Обычно
count
редко используют с циклом for
. Чаще можно встретить случаи с функциями типа zip
или map
.#itertools
Использование однострочных условий (тернарных операторов)
Иногда нужно сделать выбор между двумя значениями на основе условия. Вместо написания полного блока if-else, можно использовать тернарный оператор, который позволяет записать условие и выбор значений в одну строку.
Тернарный оператор помогает упростить код, уменьшая количество строк и делая его более читаемым, особенно в ситуациях, где нужно быстро принять решение на основе простого условия.
Иногда нужно сделать выбор между двумя значениями на основе условия. Вместо написания полного блока if-else, можно использовать тернарный оператор, который позволяет записать условие и выбор значений в одну строку.
Тернарный оператор помогает упростить код, уменьшая количество строк и делая его более читаемым, особенно в ситуациях, где нужно быстро принять решение на основе простого условия.
Использование множества (set) для удаления дубликатов из списка
Когда вы работаете со списками и хотите быстро удалить из них дубликаты, использование множества (set) — это самый простой и быстрый способ.
Этот способ особенно удобен, когда важно быстро избавиться от дубликатов, а порядок элементов не имеет значения. Он помогает сделать код компактным и эффективным.
Когда вы работаете со списками и хотите быстро удалить из них дубликаты, использование множества (set) — это самый простой и быстрый способ.
Этот способ особенно удобен, когда важно быстро избавиться от дубликатов, а порядок элементов не имеет значения. Он помогает сделать код компактным и эффективным.
🔥 Полезные библиотеки Python
email2phonenumber — инструмент OSINT, который позволяет вам получить номер телефона цели, просто имея его адрес электронной почты.
Установка:
Использование:
⚙️ GitHub/Инструкция
🎞 Demo видео
#python #github #soft #osint
email2phonenumber — инструмент OSINT, который позволяет вам получить номер телефона цели, просто имея его адрес электронной почты.
Установка:
$ pip3 install beautifulsoup4 requests
Использование:
$ python3 email2phonenumber.py scrape -e [email protected]
⚙️ GitHub/Инструкция
🎞 Demo видео
#python #github #soft #osint
This media is not supported in your browser
VIEW IN TELEGRAM
👨💻 Полезные нейросети для фриланса
🔊 Создание логотипа
🔊 Перевод текста в аудио
🔊 Улучшение качества видео
🔊 Оживление изображений
🔊 Написание и проверка текста и д.р.
📂 Сохраняем
#cheatsheet #nn #soft
🔊 Создание логотипа
🔊 Перевод текста в аудио
🔊 Улучшение качества видео
🔊 Оживление изображений
🔊 Написание и проверка текста и д.р.
📂 Сохраняем
#cheatsheet #nn #soft
⚙️ Использование функции sorted()
В Python очень легко сортировать некие последовательности данных с использованием встроенной функции
🗣️ Эта функция сортирует любые последовательности (списки, кортежи) и всегда возвращает список с отсортированными элементами. Рассмотрим пример сортировки списка чисел в порядке возрастания:
➡️ А вот — пример сортировки списка строк в порядке убывания:
В Python очень легко сортировать некие последовательности данных с использованием встроенной функции
sorted()
, которая берёт на себя решение всех сопутствующих задач.🗣️ Эта функция сортирует любые последовательности (списки, кортежи) и всегда возвращает список с отсортированными элементами. Рассмотрим пример сортировки списка чисел в порядке возрастания:
sorted([3,5,2,1,4]) # [1, 2, 3, 4, 5]
➡️ А вот — пример сортировки списка строк в порядке убывания:
sorted(['france', 'germany', 'canada', 'india', 'china'], reverse=True) # ['india', 'germany', 'france', 'china', 'canada']
Протоколы
Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.
Протокол описывается как обычный класс, наследующийся от
Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным
#typing #аннотации
Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.
Протокол описывается как обычный класс, наследующийся от
Protocol
. Он может иметь методы (в том числе с реализацией) и поля. Реальные классы, реализующие протокол могут наследоваться от него, но это не обязательно, как показано в примере. Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным
mypy
. #typing #аннотации
Forwarded from Дмитрий Обучение Python
🚀 Друзья, если вы только начинаете осваивать Python или уже перешли к фреймворкам и сложным бибилотекам,
вам помогут авторские материалы многолетнего разработчика и преподавателя Python Дмитрия Читалова.
Уже размещены:
✅Основы Python
✅Продвинутый Python
✅Алгоритмы и структуры данных
❗️Сейчас еженедельно выкладываются уроки по Архитектуре и паттернам проектирования
Подписаться можно здесь.
вам помогут авторские материалы многолетнего разработчика и преподавателя Python Дмитрия Читалова.
Уже размещены:
✅Основы Python
✅Продвинутый Python
✅Алгоритмы и структуры данных
❗️Сейчас еженедельно выкладываются уроки по Архитектуре и паттернам проектирования
Подписаться можно здесь.
Использование collections.defaultdict для работы со словарями с значениями по умолчанию
Когда вы работаете со словарями и часто сталкиваетесь с ситуацией, когда нужно инициализировать значение, если ключа ещё нет в словаре, defaultdict из модуля collections значительно упростит вашу работу.
Использование defaultdict делает код чище и защищает от ошибок, связанных с обращением к несуществующим ключам, позволяя сосредоточиться на логике задачи.
Когда вы работаете со словарями и часто сталкиваетесь с ситуацией, когда нужно инициализировать значение, если ключа ещё нет в словаре, defaultdict из модуля collections значительно упростит вашу работу.
Использование defaultdict делает код чище и защищает от ошибок, связанных с обращением к несуществующим ключам, позволяя сосредоточиться на логике задачи.
Media is too big
VIEW IN TELEGRAM
▶️ Доступ к свойствам объекта | Property и slots
В видео обсудим интересный вопрос – как можно запретить менять наши атрибуты, реализовать логику изменения/получения атрибутов и как запретить добавлять объекту новые атрибуты.
⏺ _dict_ – это атрибут объектов в питоне, который хранит состояние
⏺ _setattr_ – вызывается при попытке установить атрибут
⏺ property – это удобный механизм создания геттеров и сеттеров
⏺ _slots_ – создан для уменьшения памяти, занимаемой объектами, но как побочное свойство – не даст добавить объекту новый атрибут
👀 Смотреть на YouTube
В видео обсудим интересный вопрос – как можно запретить менять наши атрибуты, реализовать логику изменения/получения атрибутов и как запретить добавлять объекту новые атрибуты.
⏺ _dict_ – это атрибут объектов в питоне, который хранит состояние
⏺ _setattr_ – вызывается при попытке установить атрибут
⏺ property – это удобный механизм создания геттеров и сеттеров
⏺ _slots_ – создан для уменьшения памяти, занимаемой объектами, но как побочное свойство – не даст добавить объекту новый атрибут
👀 Смотреть на YouTube
This media is not supported in your browser
VIEW IN TELEGRAM
👨💻 Если вы создаете API, вот вам 6 архитектур которые нужно знать
Проектирование API — это не только функциональность, но и выбор правильной архитектуры для удовлетворения ваших потребностей. Вот шесть архитектурных проектов API, с которыми должен быть знаком каждый разработчик:
🖱 1 — REST
— Самая популярная архитектура для веб-сервисов.
— Использует HTTP-запросы для связи.
— Не сохраняет состояние и обеспечивает легкую масштабируемость и гибкость.
🖱 2 — GraphQL
— Язык запросов для вашего API.
— Позволяет клиентам запрашивать именно то, что им нужно, не больше и не меньше.
— Идеально подходит для оптимизации сетевых запросов.
🖱 3 — SOAP (устаревший)
— Протокол для обмена структурированной информацией в веб-сервисах.
— Известен своими строгими стандартами и встроенной обработкой ошибок.
— Часто используется в приложениях корпоративного уровня.
🖱 4 - gRPC
- Высокопроизводительная среда с открытым исходным кодом.
- Использует HTTP/2 для транспорта и буферы протоколов в качестве языка описания интерфейса.
- Отлично подходит для микросервисов и общения в реальном времени.
🖱 5 - WebSockets
- Обеспечивает двустороннюю связь между клиентом и сервером.
- Идеально подходит для приложений реального времени, таких как чат-приложения и обновления в реальном времени.
- Позволяет осуществлять непрерывный обмен данными без накладных расходов HTTP.
🖱 6 - MQTT
- Легкий протокол обмена сообщениями для небольших датчиков и мобильных устройств.
- Ориентирован на минимальное использование полосы пропускания и заряда батареи.
- Обычно используется в приложениях IoT (Интернет вещей).
📂 Сохраняем
#doc #cheatsheet
Проектирование API — это не только функциональность, но и выбор правильной архитектуры для удовлетворения ваших потребностей. Вот шесть архитектурных проектов API, с которыми должен быть знаком каждый разработчик:
🖱 1 — REST
— Самая популярная архитектура для веб-сервисов.
— Использует HTTP-запросы для связи.
— Не сохраняет состояние и обеспечивает легкую масштабируемость и гибкость.
🖱 2 — GraphQL
— Язык запросов для вашего API.
— Позволяет клиентам запрашивать именно то, что им нужно, не больше и не меньше.
— Идеально подходит для оптимизации сетевых запросов.
🖱 3 — SOAP (устаревший)
— Протокол для обмена структурированной информацией в веб-сервисах.
— Известен своими строгими стандартами и встроенной обработкой ошибок.
— Часто используется в приложениях корпоративного уровня.
🖱 4 - gRPC
- Высокопроизводительная среда с открытым исходным кодом.
- Использует HTTP/2 для транспорта и буферы протоколов в качестве языка описания интерфейса.
- Отлично подходит для микросервисов и общения в реальном времени.
🖱 5 - WebSockets
- Обеспечивает двустороннюю связь между клиентом и сервером.
- Идеально подходит для приложений реального времени, таких как чат-приложения и обновления в реальном времени.
- Позволяет осуществлять непрерывный обмен данными без накладных расходов HTTP.
🖱 6 - MQTT
- Легкий протокол обмена сообщениями для небольших датчиков и мобильных устройств.
- Ориентирован на минимальное использование полосы пропускания и заряда батареи.
- Обычно используется в приложениях IoT (Интернет вещей).
📂 Сохраняем
#doc #cheatsheet
👩💻 Полное руководство по пакету NumPy для научных расчетов в Python
NumPy (Numeric Python, Числовой Python) – это библиотека с открытым исходным кодом для работы с многомерными массивами и набор математических функций, которые применяются над ними
Это руководство научит вас основам NumPy, которые вы сможете использовать для вычислений в Python
🖥 Читать подробнее
NumPy (Numeric Python, Числовой Python) – это библиотека с открытым исходным кодом для работы с многомерными массивами и набор математических функций, которые применяются над ними
Это руководство научит вас основам NumPy, которые вы сможете использовать для вычислений в Python
🖥 Читать подробнее
Использование itertools для создания комбинаций и перестановок
Когда вам нужно сгенерировать все возможные комбинации, перестановки или произведения элементов из одного или нескольких списков, модуль itertools предоставляет для этого удобные функции.
Использование itertools позволяет быстро и эффективно генерировать комбинации и перестановки, что упрощает решение многих задач, связанных с перебором и анализом вариантов.
Когда вам нужно сгенерировать все возможные комбинации, перестановки или произведения элементов из одного или нескольких списков, модуль itertools предоставляет для этого удобные функции.
Использование itertools позволяет быстро и эффективно генерировать комбинации и перестановки, что упрощает решение многих задач, связанных с перебором и анализом вариантов.
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Babelfish — нейросеть, которая переведет любое аудио на нужный вам язык в реальном времени
Сервис моментально распознает речь и переведет в текст на любой язык. Идеально подойдет для учебы и просмотра зарубежных подкастов.
Работает с русским языком, да ещё и бесплатна 😎
📂 Сохраняем и используем ТУТ
Туториал на YouTube
#soft #nn
Сервис моментально распознает речь и переведет в текст на любой язык. Идеально подойдет для учебы и просмотра зарубежных подкастов.
Работает с русским языком, да ещё и бесплатна 😎
📂 Сохраняем и используем ТУТ
Туториал на YouTube
#soft #nn
⚙️ Оптимизация памяти в Python: Использование генераторов вместо списков
Когда мы работаем с большими наборами данных, важно помнить об эффективном использовании памяти. Одной из полезных фишек Python для оптимизации памяти является использование генераторов вместо списков.
➡️ Пример кода
Допустим, у нас есть задача найти квадраты чисел от 1 до 1 000 000. Сначала посмотрим, как это сделать с помощью списка:
Этот код создает список квадратов чисел, что требует значительного объема памяти. Вместо этого можно использовать генератор, который создаст объекты по мере их запроса, не занимая много памяти:
Теперь squares - это генератор, который генерирует квадраты чисел по мере необходимости, занимая минимальное количество памяти.
Почему это полезно
Использование генераторов вместо списков позволяет значительно экономить память, особенно при работе с большими наборами данных. Это делает ваш код более эффективным и позволяет работать с гораздо большими объемами данных без значительных затрат ресурсов.
Когда мы работаем с большими наборами данных, важно помнить об эффективном использовании памяти. Одной из полезных фишек Python для оптимизации памяти является использование генераторов вместо списков.
➡️ Пример кода
Допустим, у нас есть задача найти квадраты чисел от 1 до 1 000 000. Сначала посмотрим, как это сделать с помощью списка:
# Плохая практика: использование списка
squares = [x**2 for x in range(1, 1000001)]
Этот код создает список квадратов чисел, что требует значительного объема памяти. Вместо этого можно использовать генератор, который создаст объекты по мере их запроса, не занимая много памяти:
# Лучшая практика: использование генератора
squares = (x**2 for x in range(1, 1000001))
Теперь squares - это генератор, который генерирует квадраты чисел по мере необходимости, занимая минимальное количество памяти.
Почему это полезно
Использование генераторов вместо списков позволяет значительно экономить память, особенно при работе с большими наборами данных. Это делает ваш код более эффективным и позволяет работать с гораздо большими объемами данных без значительных затрат ресурсов.
Работаем с картинками в Python
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Image.open('resources/img/cat.jpg')
считывает картинку из папки. img.convert('L')
трансформирует картинку в черно-белую. ImageOps.invert(image)
обращает цвета. img.transpose(Image.FLIP_LEFT_RIGHT)
вертикально отзеркаливает картинку. img.save('grayscale_cat.jpg')
сохранит картинку на диске.