CodeShadow – Telegram
CodeShadow
76 subscribers
182 photos
11 videos
7 files
128 links
👋 Я Артемий — преподаватель Python и фрилансер.

💻 Показываю, как код и нейросети помогают зарабатывать и упрощать работу.

🚀 Делюсь проектами, опытом и лайфхаками из реальной практики.

✍🏻 Вопросы и идеи: @MifmanRu
Download Telegram
🔍 Как работает list comprehension и почему это удобно

List comprehension — это способ создавать списки на лету, лаконично и эффективно. Он заменяет длинные циклы в одну строку.

📌 Пример 1: Создание списка квадратов чисел от 0 до 9
code
squares = [x**2 for x in range(10)]
print(squares)
# ➜ [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]


📌 Пример 2: Отфильтровать только чётные числа
code
even = [x for x in range(20) if x % 2 == 0]
print(even)
# ➜ [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]


📌 Пример 3: Вложенные циклы
code
pairs = [(x, y) for x in range(3) for y in range(2)]
print(pairs)
# ➜ [(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]
💾 Работа с файлами: чтение, запись, добавление

📌 Запись в файл:
code
with open("test.txt", "w", encoding="utf-8") as f:
f.write("Привет, мир!")


📌 Чтение файла:
code
with open("test.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)


📌 Построчное чтение:
code
with open("test.txt", "r") as f:
for line in f:
print(line.strip())


📌 Добавление строки:
code
with open("test.txt", "a") as f:
f.write("\nДобавлена новая строка.")
📦 pip и requirements.txt: управление зависимостями

📌 Создать файл зависимостей:
code
pip freeze > requirements.txt


📌 Установить зависимости из файла:
code
pip install -r requirements.txt


📌 Установка конкретной версии:
code
pip install numpy==1.23.5


📌 Удаление библиотеки:
code
pip uninstall pandas
🧰 Модуль itertools — мощный инструмент работы с итерациями

📌 Пример 1: product — декартово произведение
code
from itertools import product

for p in product([1, 2], ['a', 'b']):
print(p)


📌 Пример 2: permutations — все перестановки
code
from itertools import permutations

for p in permutations('abc'):
print(''.join(p))


📌 Пример 3: groupby — группировка элементов
code
from itertools import groupby

data = "aaabbbbccaaa"
for k, g in groupby(data):
print(k, list(g))
📅 Работа с календарём в Python: модуль calendar

📌 Показать календарь месяца:
code
import calendar
print(calendar.month(2025, 5))


📌 Проверка високосного года:
code
print(calendar.isleap(2024)) # True


📌 Первый день недели и количество дней:
code
first, days = calendar.monthrange(2025, 5)
print(first, days)


📌 Имена дней недели:
code
for day in calendar.day_name:
print(day)
📂 pathlib: современная работа с путями

📌 Путь к текущему файлу:
code
from pathlib import Path

print(Path(__file__).resolve())


📌 Список .py файлов:
code
for file in Path(".").glob("*.py"):
print(file)


📌 Создание и удаление:
code
path = Path("demo.txt")
path.write_text("Hello, pathlib!")
print(path.read_text())
path.unlink()
🧮 Основы numpy: векторные вычисления

📌 Создание массива и операция:
code
import numpy as np

a = np.array([1, 2, 3])
print(a * 2)


📌 Нули и случайные значения:
code
zeros = np.zeros((2, 3))
rand = np.random.randint(0, 10, size=(3, 3))
print(zeros)
print(rand)
🔐 Хеширование данных: безопасное хранение паролей

📌 Установка:
code
pip install bcrypt


📌 Пример:
code
import bcrypt

password = b"secret123"
hashed = bcrypt.hashpw(password, bcrypt.gensalt())

print(hashed)
print(bcrypt.checkpw(password, hashed)) # True
📡 Telegram Bot API с requests

📌 Пример:
code
import requests

TOKEN = "YOUR_BOT_TOKEN"
chat_id = "YOUR_CHAT_ID"
text = "Привет от Python!"

url = f"
params = {"chat_id": chat_id, "text": text}

res = requests.get(url, params=params)
print(res.json())
🧩 Как использовать assert

📌 Пример:
code
def divide(a, b):
assert b != 0, "Деление на ноль недопустимо"
return a / b

print(divide(10, 2))
# print(divide(10, 0)) # AssertionError


assert удобно использовать при тестировании и отладке.
📰 Павел Дуров анонсировал партнерство Telegram с xAI Илона Маска

Основатель Telegram Павел Дуров заключил годовое соглашение с компанией xAI Илона Маска. В рамках сотрудничества в мессенджере появится чат-бот Grok, а Telegram получит $300 млн и половину доходов от подписок xAI. Основатель Telegram Павел Дуров объявил о годовом сотрудничестве с компанией xAI Илона Маска. В рамках партнерства в мессенджере появится чат-бот Grok, а Telegram получит $300 […]
Компьютерра

🔗 https://www.computerra.ru/315315/pavel-durov-anonsiroval-partnerstvo-telegram-s-xai-ilona-maska/
🔹 ПОЛЕЗНЫЙ СКРИПТ НА PYTHON: Автоматическое переименование файлов

Храните кучу файлов с непонятными названиями вроде `IMG_20210405_123456.jpg`? Сделаем скрипт, который переименует их в нормальный вид.

python
import os

folder = "photos"
files = os.listdir(folder)

for i, filename in enumerate(files, start=1):
ext = os.path.splitext(filename)[1]
new_name = f"photo_{i}{ext}"
os.rename(os.path.join(folder, filename), os.path.join(folder, new_name))

print("Готово!")


🔍 Как работает:
1. Считываем список файлов в папке `photos`.
2. Проходимся по ним с помощью `enumerate()`, чтобы получить и индекс, и имя.
3. Формируем новое имя вида `photo_1.jpg`, `photo_2.jpg` и т.д.
4. Переименовываем файл через `os.rename`.

📂 Теперь ваши файлы не в хаосе, а в порядке!
🎓 Хочешь выучить программирование?

🚀 Добро пожаловать в CodeShadow — индивидуальные курсы и репетиторство по Python, JavaScript, HTML, SQL и другим языкам!

🔹 Ты новичок? Научим с нуля — без скуки и воды.
🔹 Уже пишешь код? Поможем разобраться в любой теме: от ООП до асинхронности.
🔹 Готовишься к собеседованию или проекту? Разберём реальные задачи, а не "абстрактные примеры".

🧠 Преподавание = объяснение на простом языке + практика + поддержка.

📌 Что тебя ждёт:
• Индивидуальный подход
• Удобный график
• Домашки с обратной связью
• Мини-проекты и работа с реальным кодом

💬 Отзывы учеников:

“С нуля до Telegram-бота за месяц!”
“Разобрался в Django за неделю — спасибо, CodeShadow!”

📲 Запишись на пробное занятие прямо сейчас!
Напиши 👉 @MifmanRu и изучай Python вместе с нашей командой 💎
🤖 НАПИШЕМ САМОГО ПРОСТОГО TELEGRAM-БОТА

С помощью библиотеки `aiogram` создадим бота, который отвечает на любое сообщение.

python
from aiogram import Bot, Dispatcher, types
from aiogram.types import Message
from aiogram.utils import executor

bot = Bot(token="ВАШ_ТОКЕН")
dp = Dispatcher(bot)

@dp.message()
async def echo(message: Message):
await message.answer(f"Вы написали: {message.text}")

executor.start_polling(dp)


🔍 Что здесь происходит:
- Подключаем `aiogram`, создаём бота с токеном.
- Любое сообщение, которое получает бот, он дублирует обратно отправителю.

📌 Такой бот — хорошая основа для чего угодно: помощник, игра, обучалка.
📚 НАУЧПОП: ПОЧЕМУ PYTHON ТАК ПОПУЛЯРЕН?

Python — один из самых любимых языков программирования в мире. Почему?

🔸 Простота синтаксиса:
`print("Привет")` — вот и готовая программа!

🔸 Универсальность:
- Веб (Django, Flask)
- Аналитика и ML (pandas, sklearn)
- Автоматизация (скрипты, боты)
- Геймдев (Pygame)

🔸 Сообщество:
Тысячи бесплатных библиотек, решений и гайдов — стартовать легко.

🧠 Python подкупает тем, что ты сразу пишешь работающий код и получаешь результат. А это важно — видеть прогресс.
💬 СКРИПТ: Автоответчик для Telegram по ключевым словам

Если хочешь, чтобы бот отвечал по ключевым словам — держи пример:

python
@dp.message()
async def keyword_reply(message: types.Message):
text = message.text.lower()
if "привет" in text:
await message.answer("Привет! Рад тебя видеть 👋")
elif "помощь" in text:
await message.answer("Я могу помочь тебе с Python!")
else:
await message.answer("Я тебя не понял 😅")


🔍 Используем:
- Преобразование в нижний регистр (`lower()`)
- Поиск подстроки
- Простые `if-elif-else`

📌 Такой скрипт легко масштабируется: добавь словарь с фразами и ответами — и ты почти сделал чат-бота!
🧠 НАУЧПОП: ЧТО ТАКОЕ ИНТЕРПРЕТАТОР?

Python — это **интерпретируемый язык**, а значит, он читает код **построчно**.

Что это даёт?
Проще отлаживать (ошибка на 5-й строке не мешает запустить первые 4)
Можно работать в интерактивной консоли (REPL)
Быстрый старт

Что это забирает?
Python медленнее C++ или Java в вычислениях

Но если ты не пишешь движок для ракеты — тебе важнее скорость разработки, а не исполнения 😎
🔧 СКРИПТ: Удаление дубликатов файлов в папке

Занимают память одинаковые фото? Напиши скрипт, который удалит дубликаты:

python
import os
import hashlib

def file_hash(filename):
with open(filename, 'rb') as f:
return hashlib.md5(f.read()).hexdigest()

folder = "images"
seen = {}
for file in os.listdir(folder):
path = os.path.join(folder, file)
h = file_hash(path)
if h in seen:
os.remove(path)
print(f"Удалён дубликат: {file}")
else:
seen[h] = file


🔍 Суть:
1. Считаем MD5-хэш каждого файла.
2. Если такой уже был — удаляем.

📂 Папка стала легче. Скрипт можно использовать регулярно!
🌐 СКРИПТ: Получить IP-адрес сайта

Иногда нужно узнать, куда на самом деле ведёт сайт. Это просто:

python
import socket

domain = "example.com"
ip = socket.gethostbyname(domain)
print(f"{domain} -> {ip}")


🔍 `socket.gethostbyname()` возвращает IP по доменному имени.

💡 Полезно для:
- Диагностики
- Тестов безопасности
- Понимания, как работает DNS
📁 СКРИПТ: Создать резервную копию папки в .zip

Нужен автосейв папки? Вот простой способ:

python
import shutil
import datetime

src = "my_folder"
dst = f"backup_{datetime.date.today()}.zip"
shutil.make_archive(dst.replace('.zip', ''), 'zip', src)

print(f"Резервная копия создана: {dst}")


🔍 Используем:
- `shutil.make_archive` — архиватор
- `datetime` — для даты

🧳 Такой бэкап можно настроить в планировщике задач или cron.
🧠 НАУЧПОП: ПОЧЕМУ БОТЫ УДОБНЕЕ ПРИЛОЖЕНИЙ?

🤖 Telegram-боты часто удобнее, чем отдельные приложения:

Не надо ставить (работают в любом мессенджере)
Поддержка команд, кнопок, inline-режимов
Удобны для микро-задач: "узнать курс", "скачать PDF", "сделать резюме"

📌 Боты отлично подходят для автоматизации и личных помощников. А главное — делать их проще, чем кажется!