📊 Мини-скрипт: статистика слов в тексте
Быстро показывает самые частые слова.
code
from collections import Counter
text = open("book.txt").read().split()
counter = Counter(text)
print(counter.most_common(10))
Быстро показывает самые частые слова.
📧 Мини-скрипт: массовая рассылка писем
code
import smtplib
emails = ["a@mail.com", "b@mail.com"]
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login("you@gmail.com", "password")
for e in emails:
server.sendmail("you@gmail.com", e, "Привет! Это рассылка.")
server.quit()
🔥 Мотивация: твой код может изменить мир
Каждый скрипт — это вклад.
Сегодня ты написал парсер для таблицы, а завтра твои навыки помогут автоматизировать завод или построить стартап.
Не недооценивай свои маленькие проекты.
Каждый скрипт — это вклад.
Сегодня ты написал парсер для таблицы, а завтра твои навыки помогут автоматизировать завод или построить стартап.
Не недооценивай свои маленькие проекты.
💡 Мотивация: нет “поздно”, чтобы начать
20, 30, 40 лет — неважно.
Python можно освоить в любом возрасте, а рынок айти всё ещё растёт.
Каждый день запускаются стартапы, которым нужны разработчики.
20, 30, 40 лет — неважно.
Python можно освоить в любом возрасте, а рынок айти всё ещё растёт.
Каждый день запускаются стартапы, которым нужны разработчики.
🛠️ Совет: сделай свой GitHub активным
Размещай проекты, даже маленькие.
Это твоё портфолио, и заказчики или работодатели смотрят на активность.
Даже “полезные скрипты” ценятся, если они решают реальные задачи.
Размещай проекты, даже маленькие.
Это твоё портфолио, и заказчики или работодатели смотрят на активность.
Даже “полезные скрипты” ценятся, если они решают реальные задачи.
🎯 Лайфхак: используй виртуальные окружения
Так у тебя будут изолированные зависимости для каждого проекта.
Это сэкономит часы на отладке.
code
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
Так у тебя будут изолированные зависимости для каждого проекта.
Это сэкономит часы на отладке.
🦷 Реальный заказ с фриланса: создать универсальных ботов на конструкторе. Разберем на примере бота-визитки для стоматологии.
Задача: сделать ядро для обработки заявок — чтобы данные из бота приходили прямо в Telegram-чат менеджера.
Вот готовый микро-скрипт на Python:
Что ценного:
✅ Показывает работу с API Telegram
✅ Решает реальную проблему — уведомления о заявках
✅ Код универсальный — подойдет для сантехника, калькулятора окон и т.д.
Фриланс-лайфхак: Часто заказчику нужно не кнопочки двигать, а чтобы заявки не терялись.
#фриланс #python
Задача: сделать ядро для обработки заявок — чтобы данные из бота приходили прямо в Telegram-чат менеджера.
Вот готовый микро-скрипт на Python:
import requests
TELEGRAM_BOT_TOKEN = "ВАШ_ТОКЕН"
ADMIN_CHAT_ID = "ВАШ_CHAT_ID"
def send_alert(name: str, phone: str, service: str):
message = f"🦷 Новая заявка!\nИмя: {name}\nТел: {phone}\nУслуга: {service}"
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
requests.post(url, data={"chat_id": ADMIN_CHAT_ID, "text": message})
# Пример вызова
send_alert("Анна", "+79001234567", "Отбеливание")
Что ценного:
✅ Показывает работу с API Telegram
✅ Решает реальную проблему — уведомления о заявках
✅ Код универсальный — подойдет для сантехника, калькулятора окон и т.д.
Фриланс-лайфхак: Часто заказчику нужно не кнопочки двигать, а чтобы заявки не терялись.
#фриланс #python
📢 Python для фриланса: вступление
Это серия постов, где мы шаг за шагом разберём, как программисту на Python выйти на фриланс.
Вместо сухой теории будут практические советы и код, который реально можно применить в заказах.
Каждый пост будет продолжением предыдущего.
Готов? Поехали! 🚀
Следующий пост — о том, зачем нужны мини-проекты.
Это серия постов, где мы шаг за шагом разберём, как программисту на Python выйти на фриланс.
Вместо сухой теории будут практические советы и код, который реально можно применить в заказах.
Каждый пост будет продолжением предыдущего.
Готов? Поехали! 🚀
Следующий пост — о том, зачем нужны мини-проекты.
👏1👨💻1
📂 Мини-проекты: основа твоего портфолио
Фрилансеру важно показать, что он умеет решать задачи.
Для этого создавай простые мини-проекты:
- парсер сайта новостей
- Telegram-бот, который отвечает на команды
- скрипт для Excel
Пример простого проекта: подсчёт слов в тексте.
Клиенты любят видеть такие работы.
В следующем посте — сделаем своего первого Telegram-бота.
Фрилансеру важно показать, что он умеет решать задачи.
Для этого создавай простые мини-проекты:
- парсер сайта новостей
- Telegram-бот, который отвечает на команды
- скрипт для Excel
Пример простого проекта: подсчёт слов в тексте.
code
from collections import Counter
text = open("article.txt").read().split()
print(Counter(text).most_common(5))
Клиенты любят видеть такие работы.
В следующем посте — сделаем своего первого Telegram-бота.
🤖 Telegram-бот: твой первый шаг во фриланс
Боты востребованы почти у каждого бизнеса.
Рассмотрим простейший бот на aiogram:
Теперь бот повторяет сообщения. Просто, но уже работает!
Скоро разберём парсинг сайтов — частая задача на фрилансе.
Боты востребованы почти у каждого бизнеса.
Рассмотрим простейший бот на aiogram:
code
from aiogram import Bot, Dispatcher, executor, types
bot = Bot(token="TOKEN")
dp = Dispatcher(bot)
@dp.message_handler()
async def echo(msg: types.Message):
await msg.answer(msg.text)
executor.start_polling(dp)
Теперь бот повторяет сообщения. Просто, но уже работает!
Скоро разберём парсинг сайтов — частая задача на фрилансе.
👍1👨💻1
Мысли, ссылки, задачи, идеи 💡 — всё это тонет в заметках телефона. Решение? Сделать собственного бота-органайзера.
⚙️ Что он умеет:
● 📝 Сохранять заметки прямо в чат
● 📋 Показывать список всех заметок
● 🔍 Искать по тегам
● ⏰ Ставить напоминания (опционально)
● 📤 Экспортировать записи в .txt или .csv
● 📜 Мини-шаблон на aiogram 3 + SQLite:
import sqlite3
from aiogram import Bot, Dispatcher, types
from datetime import datetime
API_TOKEN = "your_token"
bot, dp = Bot(API_TOKEN), Dispatcher()
conn = sqlite3.connect("notes.db")
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS notes (
id INTEGER PRIMARY KEY, user_id INT, text TEXT, tag TEXT, created_at TEXT)""")
@dp.message(commands=["note"])
async def add(msg: types.Message):
text, tag = msg.text.replace("/note", "").strip(), None
if "#" in text: text, tag = text.split("#", 1)
cur.execute("INSERT INTO notes VALUES(NULL,?,?,?,?)",
(msg.from_user.id, text.strip(), tag, datetime.now().isoformat()))
conn.commit()
await msg.answer("✅ Заметка сохранена!")
#CodeShadow #TelegramBot #Python #aiogram #Кейс #Разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👨💻1
В прошлый раз мы сделали основу: заметки, теги и поиск. Теперь — добавляем напоминания, чтобы бот сам писал тебе в нужное время.
import asyncio
from datetime import datetime, timedelta
reminders = [] # [(user_id, text, time)]
@dp.message(commands=["remind"])
async def set_reminder(msg: types.Message):
# Пример: /remind Через 1 минуту Выпить кофе
parts = msg.text.split(" ", 3)
minutes, text = int(parts[1]), parts[2:]
remind_time = datetime.now() + timedelta(minutes=minutes)
reminders.append((msg.from_user.id, " ".join(text), remind_time))
await msg.answer(f"⏰ Напоминание через {minutes} мин!")
async def reminder_loop():
while True:
now = datetime.now()
for r in reminders[:]:
user_id, text, time = r
if now >= time:
await bot.send_message(user_id, f"🔔 Напоминание: {text}")
reminders.remove(r)
await asyncio.sleep(10)
asyncio.create_task(reminder_loop())
Дальше можно добавить:
#CodeShadow #TelegramBot #Python #aiogram #Кейс #Напоминания
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Парсинг сайтов: быстрый старт
Парсинг — топ-задача на биржах. Например, собрать заголовки с сайта новостей:
Клиенты часто заказывают именно такие штуки.
В последующих постах — автоматизация: как облегчить жизнь заказчику. Не пропустите!)
Парсинг — топ-задача на биржах. Например, собрать заголовки с сайта новостей:
code
import requests
from bs4 import BeautifulSoup
url = "https://site.com"
html = requests.get(url).text
soup = BeautifulSoup(html, "html.parser")
for h in soup.find_all("h2"):
print(h.text)
Клиенты часто заказывают именно такие штуки.
В последующих постах — автоматизация: как облегчить жизнь заказчику. Не пропустите!)
После пары проектов начинаешь тонуть в рутине: записывать название заказа, сумму, дату… Каждый раз открывать Google Таблицы и забивать всё руками — скука.
Я быстро устал от этого и решил, что за меня будет работать Python.
Есть файл orders.json с заказами:
[
{"noscript": "Telegram-бот для магазина", "price": 12000, "date": "2025-09-01"},
{"noscript": "Парсер новостей", "price": 8000, "date": "2025-09-05"},
{"noscript": "Автопостинг в ВК", "price": 10000, "date": "2025-09-10"}
]
Скрипт берёт данные из файла и автоматически отправляет их в Google Таблицу.
import json
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ["https://spreadsheets.google.com/feeds",
"https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("service_account.json", scope)
client = gspread.authorize(creds)
sheet = client.open("Финансы_Фрилансера").sheet1
with open("orders.json", "r", encoding="utf-8") as f:
orders = json.load(f)
for order in orders:
sheet.append_row([order["date"], order["noscript"], order["price"]])
print("✅ Готово! Данные в таблице.")
1. считать итог за месяц
2. конвертировать доход в валюты
2. генерировать PDF-отчёты
3. связать с Telegram-ботом и получать статистику по команде
💡 Автоматизация — это про свободу. Один раз написал скрипт → и больше не тратишь время на однообразные действия.
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзья, какой мини-скрипт вы хотите освоить в этом месяце? 😎 Выбирайте, а я подготовлю пример! 🧑💻
Голосуем до 20 сентября!
Голосуем до 20 сентября!
Final Results
27%
53%
40%
7%
CodeShadow pinned «Друзья, какой мини-скрипт вы хотите освоить в этом месяце? 😎 Выбирайте, а я подготовлю пример! 🧑💻
Голосуем до 20 сентября!»
Голосуем до 20 сентября!»
Программирование — это не только про таблицы и цифры. Python умеет творить искусство✨
Например, я попробовал сделать скрипт, который рисует абстрактные узоры и сохраняет их в PNG. Получается что-то вроде «генеративного искусства».
from PIL import Image, ImageDraw
import random
# создаём пустое изображение
img = Image.new("RGB", (500, 500), "white")
draw = ImageDraw.Draw(img)
# рисуем случайные круги
for _ in range(50):
x1 = random.randint(0, 500)
y1 = random.randint(0, 500)
x2 = x1 + random.randint(20, 100)
y2 = y1 + random.randint(20, 100)
color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
draw.ellipse([x1, y1, x2, y2], fill=color)
img.save("abstract.png")
print("✅ Картинка готова!")
Please open Telegram to view this post
VIEW IN TELEGRAM
