Работа с изображениями через Pillow 🖌️
Библиотека Pillow предоставляет мощные инструменты для обработки изображений.
🔍 Применение:
Редактирование изображений.
Создание миниатюр.
Добавление фильтров.
🔑 Результат выполнения:
Создается миниатюра изображения с размерами 100x100 пикселей.
Библиотека Pillow предоставляет мощные инструменты для обработки изображений.
🔍 Применение:
Редактирование изображений.
Создание миниатюр.
Добавление фильтров.
from PIL import Image
# Открываем изображение и создаем миниатюру
image = Image.open("example.jpg")
image.thumbnail((100, 100))
image.save("thumbnail.jpg")
print("Thumbnail создан.")
🔑 Результат выполнения:
Создается миниатюра изображения с размерами 100x100 пикселей.
Создание самоуничтожающегося Python-скрипта!
Этот код удаляет себя после выполнения, оставляя систему без следов!
Как это работает?
Скрипт выполняет свои задачи.
Определяет своё местоположение в файловой системе.
Удаляет себя после выполнения.
📌 Где пригодится:
Временная автоматизация
Тестовые скрипты
«Призрачные» утилиты без следов
⚠️ Используй с осторожностью — файл исчезает безвозвратно
Этот код удаляет себя после выполнения, оставляя систему без следов!
Как это работает?
Скрипт выполняет свои задачи.
Определяет своё местоположение в файловой системе.
Удаляет себя после выполнения.
📌 Где пригодится:
Временная автоматизация
Тестовые скрипты
«Призрачные» утилиты без следов
⚠️ Используй с осторожностью — файл исчезает безвозвратно
❤2👍1
🤖 Телеграм-бот с AI на базе OpenAI
Простой пример бота, отвечающего на сообщения с помощью GPT-3.5:
📌 Что дальше?
* Добавь команды и кнопки
* Подключи GPT-4
* Храни историю диалогов
Минимум кода — максимум возможностей!
Простой пример бота, отвечающего на сообщения с помощью GPT-3.5:
import openai
from aiogram import Bot, Dispatcher, types
import asyncio
# Твои ключи
BOT_TOKEN = "твой_бот_токен"
OPENAI_API_KEY = "твой_openai_ключ"
openai.api_key = OPENAI_API_KEY
bot = Bot(token=BOT_TOKEN)
dp = Dispatcher(bot)
async def get_ai_response(message):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": message}]
)
return response["choices"][0]["message"]["content"]
@dp.message_handler()
async def handle_message(msg: types.Message):
reply = await get_ai_response(msg.text)
await msg.answer(reply)
async def main():
await dp.start_polling()
if __name__ == "__main__":
asyncio.run(main())
📌 Что дальше?
* Добавь команды и кнопки
* Подключи GPT-4
* Храни историю диалогов
Минимум кода — максимум возможностей!
👍2🤡1
🙃 Иногда на собеседовании хочется просто исчезнуть.
Чтобы не теряться и не нести ерунду — важно заранее подготовить «продающую» легенду о себе, выстроить стратегию и подготовиться к ключевым вопросам.
💡 Был найден один суперский материал, который позволит:
🔹 Прокачать резюме — с акцентом на результат, а не «просто работу работал»
🔹 Составить чёткий рассказ о себе — кто ты, чем полезен, куда растёшь
🔹 Получить стратегию поиска и переговоров — от безопытного джуна до мидла
🔹 Узнать, как уверенно отвечать на «почему вы хотите у нас работать?» — без мемов 😉
📎 Курс на Stepik: Подготовка к собеседованию в IT: Резюме, Легенда, Стратегия
👉 https://stepik.org/a/243649
Собеседование — не экзамен. Это сделка, на которой должен заработать ты! 🎯
🎁 А для ЭТОГО и ЛЮБЫХ ДРУГИХ курсов на Stepik есть промокоды:
STEPIKSHORTS24 или STEPIKZON10 — активируй при оплате, чтобы сэкономить.
Чтобы не теряться и не нести ерунду — важно заранее подготовить «продающую» легенду о себе, выстроить стратегию и подготовиться к ключевым вопросам.
💡 Был найден один суперский материал, который позволит:
🔹 Прокачать резюме — с акцентом на результат, а не «просто работу работал»
🔹 Составить чёткий рассказ о себе — кто ты, чем полезен, куда растёшь
🔹 Получить стратегию поиска и переговоров — от безопытного джуна до мидла
🔹 Узнать, как уверенно отвечать на «почему вы хотите у нас работать?» — без мемов 😉
📎 Курс на Stepik: Подготовка к собеседованию в IT: Резюме, Легенда, Стратегия
👉 https://stepik.org/a/243649
Собеседование — не экзамен. Это сделка, на которой должен заработать ты! 🎯
🎁 А для ЭТОГО и ЛЮБЫХ ДРУГИХ курсов на Stepik есть промокоды:
STEPIKSHORTS24 или STEPIKZON10 — активируй при оплате, чтобы сэкономить.
🚀 *Функция для переворота строки*
Срезы - лучший друг Python-разработчика. Просто и мощно
def reverse_string(s):
return s[::-1]
print(reverse_string("Python")) # nohtyP
Срезы - лучший друг Python-разработчика. Просто и мощно
Рисование без рук — управляй курсором глазами!
Этот лайфхак позволит двигать курсором мыши, управляя глазами через веб-камеру! Теперь можно рисовать, кликать и работать на компьютере без рук.
Как это работает?
1. MediaPipe FaceMesh отслеживает положение глаз.
2. Пересчитывает координаты в масштаб экрана.
3. Перемещает курсор в точку, куда смотрите.
Что можно делать?
1. Рисовать в Paint глазами (просто добавьте pyautogui.click()).
2. Играть без рук (управлять мышкой во время игры).
3. Помочь людям с ограниченными возможностями (альтернатива трекпаду).
Этот лайфхак позволит двигать курсором мыши, управляя глазами через веб-камеру! Теперь можно рисовать, кликать и работать на компьютере без рук.
Как это работает?
1. MediaPipe FaceMesh отслеживает положение глаз.
2. Пересчитывает координаты в масштаб экрана.
3. Перемещает курсор в точку, куда смотрите.
Что можно делать?
1. Рисовать в Paint глазами (просто добавьте pyautogui.click()).
2. Играть без рук (управлять мышкой во время игры).
3. Помочь людям с ограниченными возможностями (альтернатива трекпаду).
❤4
Пример кода с использованием glob
Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью []. Для использования тильды "~" и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью []. Для использования тильды "~" и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
Как объединить строки без цикла?
Когда нужно склеить несколько строк из списка в одну, новички часто используют цикл for и оператор +. Но в Python есть более быстрый и лаконичный способ — метод
Метод
Итог:
Работает быстро и читаемо.
Подходит для любых итерируемых объектов со строками.
Когда нужно склеить несколько строк из списка в одну, новички часто используют цикл for и оператор +. Но в Python есть более быстрый и лаконичный способ — метод
.join().Метод
join() принимает список строк и объединяет их через указанный разделитель. Это работает гораздо эффективнее циклов и особенно полезно при работе с большими объёмами текста. Итог:
.join() — лучший способ объединения строк.Работает быстро и читаемо.
Подходит для любых итерируемых объектов со строками.
👍2
Colorama — библиотека, позволяющая работать с цветом вывода в консоль.
С её помощью можно выводить цветной текст, выставлять цвет фона, и даже смешивать эти режимы.
Colorama также может менять текст на жирный и на
Работает на всех операционках.
В том числе адекватно отображается в классической командной строке Windows.
Использовать очень просто.
Ставится командой
Документация и примеры кода здесь
С её помощью можно выводить цветной текст, выставлять цвет фона, и даже смешивать эти режимы.
Colorama также может менять текст на жирный и на
тусклый. Всё это показано на скрине выше.Работает на всех операционках.
В том числе адекватно отображается в классической командной строке Windows.
Использовать очень просто.
Ставится командой
pip install coloramaДокументация и примеры кода здесь
❤1👍1
Как удобно отформатировать строку с переменными?
Новички часто используют конкатенацию (+) для вставки переменных в строки. Это может быть неудобно и плохо читаемо. Вместо этого лучше использовать f-строки — современный и лаконичный способ форматирования строк в Python!
F-строки (или форматированные строки) позволяют вставлять переменные прямо внутрь строки с помощью фигурных скобок {}. Это и быстрее, и чище!
Итог:
-F-строки — самый читаемый и удобный способ форматирования.
-Позволяют вставлять выражения прямо в строку.
-Работают с любой версией Python 3.6+.
Новички часто используют конкатенацию (+) для вставки переменных в строки. Это может быть неудобно и плохо читаемо. Вместо этого лучше использовать f-строки — современный и лаконичный способ форматирования строк в Python!
F-строки (или форматированные строки) позволяют вставлять переменные прямо внутрь строки с помощью фигурных скобок {}. Это и быстрее, и чище!
Итог:
-F-строки — самый читаемый и удобный способ форматирования.
-Позволяют вставлять выражения прямо в строку.
-Работают с любой версией Python 3.6+.
❤2
Как замерить время выполнения кода в Python?
Когда нужно понять, насколько быстро работает фрагмент кода, новички часто используют сторонние инструменты или пробуют измерять время "на глаз". Но в Python есть простой и встроенный способ - модуль time.
С помощью time.time() можно зафиксировать время до и после выполнения кода, а затем вычесть одно из другого.
Итог:
- Используем time.time() для измерения скорости.
- Удобно для профилирования и отладки.
- Легко встроить в любой проект.
Когда нужно понять, насколько быстро работает фрагмент кода, новички часто используют сторонние инструменты или пробуют измерять время "на глаз". Но в Python есть простой и встроенный способ - модуль time.
С помощью time.time() можно зафиксировать время до и после выполнения кода, а затем вычесть одно из другого.
Итог:
- Используем time.time() для измерения скорости.
- Удобно для профилирования и отладки.
- Легко встроить в любой проект.
👍3
Как присвоить несколько переменных в одну строку?
Иногда нужно сразу задать значения нескольким переменным. Новички делают это в несколько строк, что выглядит громоздко. Но Python поддерживает удобную конструкцию множественного присваивания — коротко, читаемо и эффективно!
С помощью этой фичи можно сразу задать значения, поменять переменные местами или распаковать кортеж - всё в одной строке.
Итог:
Множественное присваивание упрощает код.
Позволяет присваивать значения сразу нескольким переменным.
Удобно для обмена значениями и распаковки структур.
Иногда нужно сразу задать значения нескольким переменным. Новички делают это в несколько строк, что выглядит громоздко. Но Python поддерживает удобную конструкцию множественного присваивания — коротко, читаемо и эффективно!
С помощью этой фичи можно сразу задать значения, поменять переменные местами или распаковать кортеж - всё в одной строке.
Итог:
Множественное присваивание упрощает код.
Позволяет присваивать значения сразу нескольким переменным.
Удобно для обмена значениями и распаковки структур.
Зачем нужны кортежи, если есть списки?
На это есть несколько причин. Во первых, кортеж защищен от изменений, как намеренных (что плохо), так и случайных (что хорошо).
Во вторых, кортежи меньше размером чем списки. Это существенный плюс при работе с большими программами.
В третьих, это возможность использовать кортежи в качестве ключей словаря.
На это есть несколько причин. Во первых, кортеж защищен от изменений, как намеренных (что плохо), так и случайных (что хорошо).
Во вторых, кортежи меньше размером чем списки. Это существенный плюс при работе с большими программами.
В третьих, это возможность использовать кортежи в качестве ключей словаря.
Возврат нескольких значений
Функции в Python могут возвращать более одной переменной без применения словаря, списка или класса.
Здесь возвращается кортеж. С тем же эффектом можно было бы написать return (name, birthdate).
Это нормально для ограниченного количества возвращаемых значений. Но все, что превышает 3 значения, должно быть помещено в класс (data).
Функции в Python могут возвращать более одной переменной без применения словаря, списка или класса.
Здесь возвращается кортеж. С тем же эффектом можно было бы написать return (name, birthdate).
Это нормально для ограниченного количества возвращаемых значений. Но все, что превышает 3 значения, должно быть помещено в класс (data).
👍2