Вот и курс с преподавателями по Data Science подоспел 🔥🔥🔥
Реклама. Информация о рекламодателе по ссылкам в посте.
Реклама. Информация о рекламодателе по ссылкам в посте.
Пример алгоритма компьютерного зрения на Python с использованием OpenCV и NumPy. Этот код выполняет обнаружение краев на изображении с помощью оператора Кэнни:
Этот алгоритм:
1. Загружает изображение.
2. Конвертирует его в градации серого.
3. Применяет размытие для уменьшения шумов.
4. Выполняет обнаружение краев методом Кэнни.
5. Отображает исходное изображение и обработанный результат.
Подпишись 👉🏻 @KodduuPython 🤖
import cv2
import numpy as np
def process_image(image_path):
# Загружаем изображение
image = cv2.imread(image_path, cv2.IMREAD_COLOR)
if image is None:
print("Ошибка: не удалось загрузить изображение.")
return
# Преобразуем изображение в оттенки серого
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Применяем размытие для снижения шума
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
# Выполняем обнаружение краев методом Кэнни
edges = cv2.Canny(blurred, 50, 150)
# Показываем результат
cv2.imshow('Original Image', image)
cv2.imshow('Edge Detection', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
# Укажите путь к изображению
image_path = 'example.jpg' # Замените на путь к вашему изображению
process_image(image_path)
Этот алгоритм:
1. Загружает изображение.
2. Конвертирует его в градации серого.
3. Применяет размытие для уменьшения шумов.
4. Выполняет обнаружение краев методом Кэнни.
5. Отображает исходное изображение и обработанный результат.
Подпишись 👉🏻 @KodduuPython 🤖
Прикольный алгоритм с использованием структуры данных Очередь (Queue) для управления очередью в ночном клубе! 🎉
Ситуация:
Представьте, что вы управляете входом в популярный ночной клуб. У вас есть ограниченное количество мест, и вам нужно следить за тем, чтобы люди заходили в порядке живой очереди. При этом VIP-гости должны обслуживаться быстрее.
Решение:
Мы используем две очереди (обычную и приоритетную), чтобы справедливо распределять доступ.
Код на Python
Как это работает?
1. Добавляем людей в две очереди:
- VIP-гости попадают в
- Обычные посетители – в
2. При входе в клуб приоритет отдается VIP-гостям.
3. Гости заходят по очереди, пока клуб не заполнится.
4. Клуб закрывается, когда все вошли.
### Реальное применение
Этот алгоритм можно использовать в:
- Управлении живыми очередями (концерты, аэропорты 🛫, мероприятия 🎭).
- Разработке онлайн-систем бронирования, где премиум-клиенты получают приоритет.
- Виртуальных очередях (например, при покупке билетов 🎟).
Подпишись 👉🏻 @KodduuPython 🤖
Ситуация:
Представьте, что вы управляете входом в популярный ночной клуб. У вас есть ограниченное количество мест, и вам нужно следить за тем, чтобы люди заходили в порядке живой очереди. При этом VIP-гости должны обслуживаться быстрее.
Решение:
Мы используем две очереди (обычную и приоритетную), чтобы справедливо распределять доступ.
Код на Python
from collections import deque
import time
class NightClubQueue:
def __init__(self, capacity):
self.capacity = capacity
self.regular_queue = deque() # Очередь для обычных посетителей
self.vip_queue = deque() # Очередь для VIP
def arrive(self, name, is_vip=False):
if is_vip:
self.vip_queue.append(name)
print(f"🔥 VIP {name} добавлен в VIP-очередь!")
else:
self.regular_queue.append(name)
print(f"🕺 {name} встал в обычную очередь!")
def admit_guest(self):
if len(self.vip_queue) > 0:
guest = self.vip_queue.popleft()
print(f"🚀 Пропускаем VIP {guest}!")
elif len(self.regular_queue) > 0:
guest = self.regular_queue.popleft()
print(f"✅ Пропускаем обычного гостя {guest}!")
else:
print("⏳ Очередь пуста, можно отдыхать!")
def run_night(self):
print("\n🎶 Начинаем вечер в клубе! 🎶\n")
while self.vip_queue or self.regular_queue:
self.admit_guest()
time.sleep(1) # Имитация задержки при входе
print("\n🎉 Вход завершен, клуб заполнен!\n")
# Пример использования
club = NightClubQueue(capacity=5)
club.arrive("Иван")
club.arrive("Алина", is_vip=True)
club.arrive("Дмитрий")
club.arrive("Сергей", is_vip=True)
club.arrive("Мария")
club.run_night()
Как это работает?
1. Добавляем людей в две очереди:
- VIP-гости попадают в
vip_queue. - Обычные посетители – в
regular_queue. 2. При входе в клуб приоритет отдается VIP-гостям.
3. Гости заходят по очереди, пока клуб не заполнится.
4. Клуб закрывается, когда все вошли.
### Реальное применение
Этот алгоритм можно использовать в:
- Управлении живыми очередями (концерты, аэропорты 🛫, мероприятия 🎭).
- Разработке онлайн-систем бронирования, где премиум-клиенты получают приоритет.
- Виртуальных очередях (например, при покупке билетов 🎟).
Подпишись 👉🏻 @KodduuPython 🤖
🔥1
Ну вот нацонец-то выпустили мою статью на habr. Это тот еще челлендж - это не мемы постить на pikabu 😀
Статья про то как мы делаем RAG (Retrieval Augmented Generation) систему на Python для нашей компании. Очень увлекательное занятие, скоро у нас будет возможность спросить вопрос в slack по любым данным компании за 10 лет, и получить точный ответ за 10 сек.
Бота назвали R2D2 🤖 Прикрутили локальные модели + Gemini, OpenAPI, YandexGPT, Gigachat. Тестируем сейчас какая лучше для нас.
Буду писать серию статей по этой теме на habr, если интересно - подпишитесь там на меня.
Планы огромные, например:
👉 Будем пилить AI агента, который может уточнять проблему у клиента, и заводить качественный баг в JIRA (сейчас на это уходят дорогие ресурсы инженеров) 🧐
👉 Будем пилить AI агента для уточнения тербований у PM в slack, и заводить план на wiki, а может даже и набор JIRA tickets + Ghant Chart 🤔
Подпишись 👉🏻 @KodduuPython 🤖
Статья про то как мы делаем RAG (Retrieval Augmented Generation) систему на Python для нашей компании. Очень увлекательное занятие, скоро у нас будет возможность спросить вопрос в slack по любым данным компании за 10 лет, и получить точный ответ за 10 сек.
Бота назвали R2D2 🤖 Прикрутили локальные модели + Gemini, OpenAPI, YandexGPT, Gigachat. Тестируем сейчас какая лучше для нас.
Буду писать серию статей по этой теме на habr, если интересно - подпишитесь там на меня.
Планы огромные, например:
👉 Будем пилить AI агента, который может уточнять проблему у клиента, и заводить качественный баг в JIRA (сейчас на это уходят дорогие ресурсы инженеров) 🧐
👉 Будем пилить AI агента для уточнения тербований у PM в slack, и заводить план на wiki, а может даже и набор JIRA tickets + Ghant Chart 🤔
Подпишись 👉🏻 @KodduuPython 🤖
Хабр
Как я сделал RAG для своей компании
Появилась свободное время, и я решил сделать RAG (Retrieval Augmented Generation) для нашей компании. Компания небольшая, но документации технической и бизнес накопилось очень много, в основном на...
⚡3👍3
И не забываем про курс профессия Python-разработчик с преподавателями 🔥🔥🔥
Реклама. Информация о рекламодателе по ссылкам в посте.
Реклама. Информация о рекламодателе по ссылкам в посте.
🌸 С наступающим 8 марта! Ниже код, который рисует радужный цветок 🎨💐
💡 Что делает этот код?
🌈 Рисует цветок с 6 лепестками, каждый разного цвета.
🌿 Добавляет зеленый стебель для естественного вида.
🐢 Использует `turtle`, чтобы легко и красиво рисовать графику.
❔Подумайте как ускорить рисование, и как сделать чтобы стебель шел всегда вниз 🤔
Подпишись 👉🏻 @KodduuPython 🤖
import turtle
import math
import random
# Настройка экрана
screen = turtle.Screen()
screen.bgcolor("lightblue")
t = turtle.Turtle()
t.speed(0)
# Палитра цветов для лепестков
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
# Функция для рисования сердцевидного лепестка
def heart_petal(size, color):
t.fillcolor(color)
t.begin_fill()
t.left(140)
t.forward(size)
for _ in range(200): # Рисуем дугу
t.right(1)
t.forward(size * math.pi / 200)
t.left(120)
for _ in range(200): # Вторая дуга
t.right(1)
t.forward(size * math.pi / 200)
t.forward(size)
t.end_fill()
# Рисуем цветок с разноцветными лепестками
t.penup()
t.goto(0, -50)
t.pendown()
for i in range(6):
t.color(colors[i % len(colors)]) # Берем цвет из списка
heart_petal(50, colors[i % len(colors)])
t.right(60) # Поворачиваем для следующего лепестка
# Рисуем стебель
t.color("green")
t.fillcolor("green")
t.penup()
t.goto(0, -50)
t.pendown()
t.right(90)
t.forward(200)
# Оставляем окно открытым
turtle.done()
💡 Что делает этот код?
🌈 Рисует цветок с 6 лепестками, каждый разного цвета.
🌿 Добавляет зеленый стебель для естественного вида.
🐢 Использует `turtle`, чтобы легко и красиво рисовать графику.
❔Подумайте как ускорить рисование, и как сделать чтобы стебель шел всегда вниз 🤔
Подпишись 👉🏻 @KodduuPython 🤖
Женская логика – это нечто уникальное, непредсказуемое и невероятно гениальное. Именно за это мы и любим женщин! ❤️
Давайте напишем юмористический код на Python, который это демонстрирует.
😂 Код (все в шутку, не воспринимать всерьез! 🙃)
🔥 Как работает этот код?
💖 Эмулирует "женскую логику", выдавая неожиданные, но жизненные ответы.
🎭 Использует `random.choice()`, потому что предсказать ответ невозможно.
😂 Делает жизнь веселее – ведь именно эта загадочность и делает женщин уникальными!
Девушки, без обид! Мы вас любим такими, какие вы есть! ❤️ 😘
Подпишись 👉🏻 @KodduuPython 🤖
Давайте напишем юмористический код на Python, который это демонстрирует.
😂 Код (все в шутку, не воспринимать всерьез! 🙃)
import random
class WomanLogic:
def __init__(self):
self.mood = random.choice(["😇 Хорошее", "😈 Плохое", "🤔 Непонятное"])
self.choices = {
"Что хочешь поесть?": ["Не знаю", "Что-то вкусное", "Ты должен угадать!"],
"Ты точно не злишься?": ["Нет", "Нет.", "Я? Да нет, конечно..."],
"Можно купить это платье?": ["Оно мне идет?", "У меня уже есть похожее, но другое!", "Ты считаешь меня толстой?!"],
"Как тебе мой новый маникюр?": ["Красиво!", "Очень красиво!", "Ты даже не посмотрел! 😡"],
"Ты меня любишь?": ["Да", "Очень!", "Докажи!"],
}
def ask(self, question):
if question in self.choices:
return random.choice(self.choices[question])
return "Ты сам должен знать ответ! 😤"
# 🎭 Тестируем "женскую логику"
wl = WomanLogic()
print(f"🌸 Настроение сейчас: {wl.mood}\n")
questions = [
"Что хочешь поесть?",
"Ты точно не злишься?",
"Можно купить это платье?",
"Как тебе мой новый маникюр?",
"Ты меня любишь?",
]
for q in questions:
print(f"❓ {q}")
print(f"💬 {wl.ask(q)}\n")
🔥 Как работает этот код?
💖 Эмулирует "женскую логику", выдавая неожиданные, но жизненные ответы.
🎭 Использует `random.choice()`, потому что предсказать ответ невозможно.
😂 Делает жизнь веселее – ведь именно эта загадочность и делает женщин уникальными!
Девушки, без обид! Мы вас любим такими, какие вы есть! ❤️ 😘
Подпишись 👉🏻 @KodduuPython 🤖
🔥2👀2
Вот код с распространенной ошибкой, которую даже опытные разработчики могут случайно допустить.
Этот код проверяет, является ли число простым. Но в нем есть неявный баг. Твоя задача – найти и исправить его! 😈
---
📝 Код с ошибкой
---
💡 Намек:
Ошибка неявная и не бросается в глаза. Она связана с итерацией по делителям.
Из-за этой ошибки код некорректно определяет некоторые числа как простые.
Ты сможешь ее найти и исправить? 🧐🚀
Подпишись 👉🏻 @KodduuPython 🤖
Этот код проверяет, является ли число простым. Но в нем есть неявный баг. Твоя задача – найти и исправить его! 😈
---
📝 Код с ошибкой
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5)): # 🔥 Где-то здесь ошибка!
if n % i == 0:
return False
return True
# 🔍 Тестируем
test_numbers = [1, 2, 3, 4, 5, 16, 17, 19, 20, 23, 25]
for num in test_numbers:
print(f"{num}: {'Простое' if is_prime(num) else 'Составное'}")
---
💡 Намек:
Ошибка неявная и не бросается в глаза. Она связана с итерацией по делителям.
Из-за этой ошибки код некорректно определяет некоторые числа как простые.
Ты сможешь ее найти и исправить? 🧐🚀
Подпишись 👉🏻 @KodduuPython 🤖
❤2👍1
🚀 Исправляем распространенную ошибку в проверке простых чисел
Недавно я написал код для проверки, является ли число простым, но в нем была неявная ошибка, которую часто допускают даже опытные разработчики. 😈
---
🛑 Ошибка:
В этой строке:
Мы не включаем верхнюю границу диапазона
Из-за этого алгоритм не проверял делимость на корень числа, а значит, некоторые составные числа ошибочно считались простыми. Например,
---
### ✅ Исправленный код:
---
💡 Итог:
✅ Теперь код корректно определяет все числа!
✅ Ошибка была связана с неправильным диапазоном в `range()`.
✅ Если ты проверяешь делители до
💬 Кто сталкивался с такой ошибкой? Поделитесь в комментариях! 🚀
Подпишись 👉🏻 @KodduuPython 🤖
Недавно я написал код для проверки, является ли число простым, но в нем была неявная ошибка, которую часто допускают даже опытные разработчики. 😈
---
🛑 Ошибка:
В этой строке:
for i in range(2, int(n ** 0.5)):
Мы не включаем верхнюю границу диапазона
range(), но она должна быть int(n 0.5) + 1**! Из-за этого алгоритм не проверял делимость на корень числа, а значит, некоторые составные числа ошибочно считались простыми. Например,
25 считалось простым, потому что 5 не проверялся.---
### ✅ Исправленный код:
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1): # ✅ Теперь проверяем и сам корень!
if n % i == 0:
return False
return True
# 🔍 Тестируем
test_numbers = [1, 2, 3, 4, 5, 16, 17, 19, 20, 23, 25]
for num in test_numbers:
print(f"{num}: {'Простое' if is_prime(num) else 'Составное'}")
---
💡 Итог:
✅ Теперь код корректно определяет все числа!
✅ Ошибка была связана с неправильным диапазоном в `range()`.
✅ Если ты проверяешь делители до
√n, не забудь включить +1 в range(). 💬 Кто сталкивался с такой ошибкой? Поделитесь в комментариях! 🚀
Подпишись 👉🏻 @KodduuPython 🤖
До 12 марта идет дикая распродажа на самый полный курс по Python, который включает:
👉 Всю базу Python
👉 Data Science на Python
👉 CookBook по Python (Python в нескучных примерах)
👉 Топ 100 вопросов с реальных собеседований по Python (+тесты)
Либо отдельно можно купить только Топ 100 вопросов с реальных собеседований по Python (+тесты).
Подпишись 👉🏻 @KodduuPython 🤖
👉 Всю базу Python
👉 Data Science на Python
👉 CookBook по Python (Python в нескучных примерах)
👉 Топ 100 вопросов с реальных собеседований по Python (+тесты)
Либо отдельно можно купить только Топ 100 вопросов с реальных собеседований по Python (+тесты).
Подпишись 👉🏻 @KodduuPython 🤖
На Habr вышла вторая часть статьи "Как я сделал RAG для своей компании (часть 2). И как начал делать AI Агента." 🧐
Backlog проекта RAG + Agent AI для своей компании растет на глазах. Чем больше делаешь, тем больше идей💡В следующей части планирую выложить miro архитектуру проекта + github. Следите, подписывайтесь на habr. На картинке драфт архитектуры.
Подпишись 👉🏻 @KodduuPython 🤖
Backlog проекта RAG + Agent AI для своей компании растет на глазах. Чем больше делаешь, тем больше идей💡В следующей части планирую выложить miro архитектуру проекта + github. Следите, подписывайтесь на habr. На картинке драфт архитектуры.
Подпишись 👉🏻 @KodduuPython 🤖
QR-коды могут содержать разнообразные данные, а не только ссылки! 📲✨
🔹 Что можно зашифровать в QR-код?
✅ Текст – любой текст или сообщение.
✅ Контактные данные (vCard) – имя, телефон, email, адрес.
✅ Wi-Fi данные – SSID и пароль для быстрого подключения.
✅ Электронная почта (mailto) – открывает окно для написания письма.
✅ SMS-сообщение (sms:) – подставляет номер и текст.
✅ Геолокация – координаты (широта и долгота).
✅ Криптокошельки – Bitcoin, Ethereum и другие.
✅ Команды для приложений – WhatsApp, Telegram, PayPal и др.
---
📌 Примеры кодов и их данных
1️⃣ Текстовый QR-код
2️⃣ QR-код с контактами (vCard)
3️⃣ QR-код для подключения к Wi-Fi
📶 После сканирования телефон автоматически подключится к Wi-Fi!
4️⃣ QR-код с координатами (например, Красная площадь, Москва)
5️⃣ QR-код для мгновенного перевода криптовалюты (например, Bitcoin)
---
🛠 Полный код для генерации QR-кодов с разными данными
---
💡 Как можно применять?
✔ Визитки – добавляйте QR-код с контактами 📇
✔ Wi-Fi в кафе – клиенты подключаются без пароля 📶
✔ Маркетинг – ссылки на соцсети, акции, сайты 🏪
✔ Криптоплатежи – удобный перевод крипты 🚀
✔ Билеты и доступ – QR-коды для мероприятий 🎟
QR-коды многофункциональны, и их можно использовать не только для ссылок! 🔥
Ты уже пробовал создавать свои QR-коды? 😎
Подпишись 👉🏻 @KodduuPython 🤖
🔹 Что можно зашифровать в QR-код?
✅ Текст – любой текст или сообщение.
✅ Контактные данные (vCard) – имя, телефон, email, адрес.
✅ Wi-Fi данные – SSID и пароль для быстрого подключения.
✅ Электронная почта (mailto) – открывает окно для написания письма.
✅ SMS-сообщение (sms:) – подставляет номер и текст.
✅ Геолокация – координаты (широта и долгота).
✅ Криптокошельки – Bitcoin, Ethereum и другие.
✅ Команды для приложений – WhatsApp, Telegram, PayPal и др.
---
📌 Примеры кодов и их данных
1️⃣ Текстовый QR-код
qr.add_data("Привет! Это текст внутри QR-кода! 😊")
2️⃣ QR-код с контактами (vCard)
vcard = """BEGIN:VCARD
VERSION:3.0
FN:Иван Иванов
TEL:+79161234567
EMAIL:ivan@example.com
END:VCARD"""
qr.add_data(vcard)
3️⃣ QR-код для подключения к Wi-Fi
wifi_data = "WIFI:S:MyNetwork;T:WPA;P:MyPassword;;"
qr.add_data(wifi_data)
📶 После сканирования телефон автоматически подключится к Wi-Fi!
4️⃣ QR-код с координатами (например, Красная площадь, Москва)
geo_data = "geo:55.7539,37.6208"
qr.add_data(geo_data)
5️⃣ QR-код для мгновенного перевода криптовалюты (например, Bitcoin)
btc_address = "bitcoin:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa?amount=0.01"
qr.add_data(btc_address)
---
🛠 Полный код для генерации QR-кодов с разными данными
import qrcode
# Замените данные на нужные вам
data = "WIFI:S:MyNetwork;T:WPA;P:MyPassword;;" # Данные для Wi-Fi
# Генерация QR-кода
qr = qrcode.make(data)
# Сохранение изображения
qr.save("qr_code.png")
print("✅ QR-код сохранен как 'qr_code.png'")
---
💡 Как можно применять?
✔ Визитки – добавляйте QR-код с контактами 📇
✔ Wi-Fi в кафе – клиенты подключаются без пароля 📶
✔ Маркетинг – ссылки на соцсети, акции, сайты 🏪
✔ Криптоплатежи – удобный перевод крипты 🚀
✔ Билеты и доступ – QR-коды для мероприятий 🎟
QR-коды многофункциональны, и их можно использовать не только для ссылок! 🔥
Ты уже пробовал создавать свои QR-коды? 😎
Подпишись 👉🏻 @KodduuPython 🤖
⚡3👨💻2🆒1
🛡 Как работают SQL-инъекции на Python?
SQL-инъекция — это одна из самых опасных уязвимостей, которая позволяет взломать базу данных через неправильно обработанные запросы. Давайте разберем это на примере Python + SQLite.
🚨 Уязвимый код (НЕЛЬЗЯ ТАК ПИСАТЬ!)
🕵 Как это взломать?
Допустим, злоумышленник вводит в поле "Имя пользователя":
Тогда SQL-запрос превратится в:
А так как
✅ Как защититься? Используем параметризованные запросы!
Исправим уязвимость с помощью защищенных SQL-запросов:
Теперь любые вредоносные символы (`'`,
💡 Итог
✅ SQL-инъекции = опасно!
✅ Никогда не вставляйте данные напрямую в SQL-запросы!
✅ Используйте `cursor.execute("... WHERE username = ?", (username,))`
Подпишись 👉🏻 @KodduuPython 🤖
SQL-инъекция — это одна из самых опасных уязвимостей, которая позволяет взломать базу данных через неправильно обработанные запросы. Давайте разберем это на примере Python + SQLite.
🚨 Уязвимый код (НЕЛЬЗЯ ТАК ПИСАТЬ!)
import sqlite3
# Создаем тестовую базу данных
conn = sqlite3.connect(":memory:") # Используем оперативную память (не сохраняется на диск)
cursor = conn.cursor()
# Создаем таблицу пользователей
cursor.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT, password TEXT)")
cursor.execute("INSERT INTO users (username, password) VALUES ('admin', 'supersecret')")
conn.commit()
# 🚨 Вход пользователя (уязвимый код!)
username = input("Введите имя пользователя: ")
password = input("Введите пароль: ")
query = f"SELECT * FROM users WHERE username = '{username}' AND password = '{password}'"
print(f"\n[DEBUG] SQL-запрос: {query}") # Показываем SQL-запрос (чтобы увидеть проблему)
cursor.execute(query)
user = cursor.fetchone()
if user:
print("✅ Доступ разрешен!")
else:
print("❌ Неверный логин или пароль!")
conn.close()
🕵 Как это взломать?
Допустим, злоумышленник вводит в поле "Имя пользователя":
' OR '1'='1
Тогда SQL-запрос превратится в:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = ''
А так как
'1'='1' всегда истина, то запрос вернет всех пользователей, и злоумышленник войдет в систему без пароля! 😨✅ Как защититься? Используем параметризованные запросы!
Исправим уязвимость с помощью защищенных SQL-запросов:
# 🔒 Безопасная версия
query = "SELECT * FROM users WHERE username = ? AND password = ?"
cursor.execute(query, (username, password))
user = cursor.fetchone()
Теперь любые вредоносные символы (`'`,
--, OR, `1=1`) не повлияют на SQL-запрос, так как Python передает их как безопасные параметры, а не код.💡 Итог
✅ SQL-инъекции = опасно!
✅ Никогда не вставляйте данные напрямую в SQL-запросы!
✅ Используйте `cursor.execute("... WHERE username = ?", (username,))`
Подпишись 👉🏻 @KodduuPython 🤖
👍5