PytStart | Программирование на Python
رفتن به کانال در Telegram
Python: примеры кода, уроки, статьи Купить рекламу: https://telega.in/c/pytstart ✍️По всем вопросам: @Pascal4eg Менеджер по рекламе: @shmyzna
نمایش بیشتر4 384
مشترکین
-324 ساعت
-217 روز
-2030 روز
آرشیو پست ها
🐍 Как читать JSON и сразу превращать в объекты
Часто работаешь с JSON? Можно сразу превращать его в удобные объекты 👇
import json
from types import SimpleNamespace
data = '{"name": "Alex", "age": 25}'
obj = json.loads(data, object_hook=lambda d: SimpleNamespace(**d))
print(obj.name) # Alex
💡 Теперь вместо data["name"] можно писать obj.name
📌 Если JSON вложенный - это тоже работает:
data = '{"user": {"name": "Alex"}}'
obj = json.loads(data, object_hook=lambda d: SimpleNamespace(**d))
print(obj.user.name)
🔥 Удобно для:
— работы с API
— прототипирования
— чистого кода без []
⚠️ Но будь осторожен:
— нет автодополнения как у dataclass
— меньше контроля над структурой
🚀 Быстро и красиво
#python #jsonИзучаете программирование, или хотите стать классным айтишником с высокой ЗП?
Пока многие паникуют из-за бума ИИ, вы можете стремительно войти в сферу IT при помощи сборки "IT в деле" которую мы составили. Специально для вас разбили нашу сборку мини папки по конкретным тематикам:)
Что внутри сборки:
- Каналы о программировании и разработке: Python, CSS, HTML, Java и Swift
- GameDev и каналы о QA тестироварии, создание игр, помощь для ваших проектов и реальный опыт от тестировщиков 💍
- Авторские каналы и вайбкодинг: IT & AI, простые заметки с проектов, работа с нейросетями, и как они реально влияют на индустрию 🔤
- Информационная безопасность: многое узнаете о работе хакеров и о том, как защитить себя в этом интернет-хаосе. 🔫
Для каждого здесь что-то найдётся! Выберите интересные вам каналы или подпишитесь на всю сборку, и найдите то, что нужно вам для следующего шага в IT.
🐍 Как сделать декоратор (и прокачать функции)
Декораторы позволяют оборачивать функции и добавлять им поведение 👇
def log(func):
def wrapper(*args, **kwargs):
print(f"Вызов: {func.__name__}")
return func(*args, **kwargs)
return wrapper
Использование:
@log
def say_hi(name):
print(f"Привет, {name}")
say_hi("Alex")
👉 Вывод:
Вызов: say_hi Привет, Alex💡 Где это используется: — логирование — проверка прав — кэширование — замер времени 🔥 Это основа многих фреймворков (например, Flask, Django) 🚀 Освоишь декораторы - начнёшь писать реально мощный код #python #продвинутый
На Stepik запустили курс «От новичка к уверенности в коде на Python»
Курс создан для новичков, которым важно не заучить команды, а понять логику. Наглядные схемы и визуальные разборы показывают, что происходит внутри программы и как она работает
Много практики, понятные объяснения решений не дадут застрять на теории. Материал предлагает вам не иллюзию знаний, а ощущение контроля: вы ясно видите как из нескольких строк кода рождается работающая программа
Что внутри:
✅переменные и типы данных
✅условия и логика программ
✅циклы и рекурсия
✅функции и работа с вводом данных
✅списки, словари и множества
✅базовое ООП
✅работа с библиотеками Python
✅десятки задач и упражнений
Эти знания фундамент для написания простых ботов и автоматизации задач
Скидка 25%, действует 48 часов
🔗Пройти курс на Stepik
🐍 Как сделать простой HTTP-запрос за 2 строки
Нужно сходить в API? В Python это делается максимально просто 👇
import requests
res = requests.get("https://api.github.com")
print(res.status_code)
💡 Получить JSON:
data = res.json()
print(data)
📌 Отправить POST:
requests.post("https://example.com", json={"name": "Alex"})
🔥 Почему удобно:
➡️ читаемый код
➡️ минимум настроек
➡️ работает “из коробки” (после `pip install requests`)
⚠️ Не забывай обрабатывать ошибки:
if res.status_code == 200:
print("OK")
🚀 База для работы с любыми API
#python #api🐍 Как замерить время выполнения кода (за 1 строку)
Иногда нужно быстро понять - где тормозит код 👇
import time
start = time.time()
# твой код
sum(range(10_000_000))
print(time.time() - start)
💡 Но есть способ лучше - модуль timeit:
import timeit
print(timeit.timeit("sum(range(10_000_000))", number=1))
📌 Почему это круче:
➡️ более точные измерения
➡️ изолированное выполнение
➡️ можно запускать несколько раз
🔥 Для серьёзного анализа - мастхэв
#python #performance🐍 Как сделать простой кэш (и ускорить код)
Иногда функция вызывается с одними и теми же аргументами - зачем считать заново? 🤔
Используй встроенный кэш 👇
from functools import lru_cache
@lru_cache(maxsize=128)
def fib(n):
if n < 2:
return n
return fib(n - 1) + fib(n - 2)
💡 Теперь результаты сохраняются, и повторные вызовы работают мгновенно 🚀
📌 Проверка:
print(fib(100)) # считается очень быстро
🔥 Где полезно:
➡️ рекурсия
➡️ тяжёлые вычисления
➡️ API/запросы (с осторожностью)
⚠️ Важно:
➡️ аргументы должны быть хешируемыми
➡️ кэш занимает память
#python #оптимизацияПоявился удобный AI-инструмент для подготовки к найму и прохождения собеседований - Sobes Copilot.
Это ассистент, который помогает прямо во время интервью: слушает диалог, распознаёт речь в реальном времени и подсказывает, как лучше ответить. Работает в Zoom, Google Meet, Teams, VK Calls и других платформах, и не виден при демонстрации экрана.
Что есть в Sobes Copilot:
• Подсказки в реальном времени во время собеседований
• Пост-анализ интервью - сервис разбирает прошедший созвон, выделяет сильные и слабые места, удачные формулировки и зоны роста
• Генератор и улучшение резюме - помогает собрать сильное резюме под конкретную вакансию
• Мок-собеседования (и System Design) - тренировки с ИИ, приближённые к реальным интервью
• Авто-отклики на HH - автоматизируют массовую подачу на вакансии по заданным фильтрам
Если хочешь проходить собеседования спокойнее, увереннее и системнее - посмотри, что умеет Sobes Copilot.
🐍 Как читать большой файл построчно (и не убить память)
Ошибка новичков - читать файл целиком:
data = open("big.txt").read()
❌ Если файл большой - привет, проблемы с памятью
✅ Правильный способ - читать построчно:
with open("big.txt") as f:
for line in f:
print(line.strip())
💡 Python сам читает файл по кускам, а не загружает всё сразу
📌 Если нужна нумерация строк:
with open("big.txt") as f:
for i, line in enumerate(f, 1):
print(i, line.strip())
🔥 Это база для:
➡️ логов
➡️ парсинга больших файлов
➡️ обработки данных
🚀 Просто, эффективно и “по-питоновски”Запускай проекты там, где их не заблокируют! 🚀
▶️Каждый разработчик на Python или Java рано или поздно сталкивается с вопросом: куда залить своего бота или сайт, чтобы всё летало, а оплата не превращалась в квест?
▶️Ищешь надежный VPS для бота, сайта или Django-проекта?
▶️DIRO C&H - классифицируется на европейских серверах с человеческим подходом.
▶️Почему мы?
▶️🇨🇿 Чешская надежность: Мы официально зарегистрированы в Европе.
▶️⚙️ Полная гибкость: Не переплачивай за лишнее! Нарежем столько CPU и RAM, сколько нужно именно тебе.
▶️⚡️ Скорость: Процессоры Intel Xeon и SSD. Пинг для РФ ≈ от 40-60 мс.
▶️💳 Без боли: Принимаем любые карты РФ и СБП.
▶️💰 Цена: от 349₽ в месяц.
▶️🎁 АКЦИЯ: Не веришь на слово? Даем БЕСПЛАТНЫЙ ТЕСТ на 2 дня!
▶️Присоединяйся к DIRO и забудь о проблемах с хостингом:
✅ https://t.me/diro_hosting ✅
По всем вопросам и за тестом: @diro_support
🐍 Как красиво распаковать словарь в функцию
В Python можно передавать словарь как аргументы функции - это выглядит очень чисто 👇
def greet(name, age):
print(f"{name}, тебе {age} лет")
data = {"name": "Alex", "age": 25}
greet(**data)
💡 ** распаковывает словарь в именованные аргументы
📌 Это особенно удобно, когда:
— данные приходят из JSON
— работаешь с API
— прокидываешь настройки
🔥 Можно комбинировать:
def func(a, b, c):
print(a, b, c)
data = {"b": 2, "c": 3}
func(1, **data)
⚠️ Ключи словаря должны совпадать с именами параметров
🚀 Делает код гибче и чище⌨️ Как быстро сделать CLI-утилиту на Python (аргументы командной строки)
Хочешь написать свой мини-инструмент в терминале? Легко 👇
import argparse
parser = argparse.ArgumentParser(description="Простой калькулятор")
parser.add_argument("a", type=int)
parser.add_argument("b", type=int)
parser.add_argument("--op", choices=["add", "mul"], default="add")
args = parser.parse_args()
if args.op == "add":
print(args.a + args.b)
else:
print(args.a * args.b)
📌 Запуск:
python app.py 2 3 --op mul
👉 Вывод: 6
💡 Что ты получил:
— аргументы из терминала
— автогенерацию --help
— валидацию значений
🔥 Отличная база для своих CLI-инструментовВ России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онлайн
Но где их находить? Как узнавать о них раньше, чем когда все начнут выкладывать фотографии оттуда?
Переходите на канал IT-Мероприятия России. В нём каждый день анонсируются мероприятия со всех городов России
📆 в канале размещаются как онлайн, так и оффлайн мероприятия;
👩💻 можно найти ивенты по любому стеку: программирование, frontend-backend разработка, кибербезопасность, дата-аналитика, osint, devops и другие;
🎙 разнообразные форматы мероприятий: митапы с коллегами по цеху, конференции и вебинары с известными опытными специалистами, форумы и олимпиады от важных представителей индустрии и многое другое
А чтобы не искать по разным форумам и чатам новости о предстоящих ивентах:
🚀 IT-мероприятия России — подписывайся и будь в курсе всех предстоящих мероприятий!
⌨️ Фишка Python: `for-else`, о котором почти никто не знает
Да-да, у цикла
for есть блок else 😮
for i in range(5):
if i == 10:
break
else:
print("Не нашли!")
💡 Как это работает:
else выполняется, если цикл завершился без `break`
📌 Практический пример - поиск:
nums = [1, 3, 5, 7]
for n in nums:
if n == 4:
print("Нашли!")
break
else:
print("Число не найдено")
🔥 Это удобная альтернатива флагам типа found = False
⚠️ Главное — помнить: else не срабатывает, если был break⌨️ Выражения прямо внутри условий (walrus operator)
Начиная с Python 3.8 появился оператор
:=, который позволяет присваивать значение прямо в выражении 👇
if (n := len("hello")) > 3:
print(n)
💡 Здесь мы сразу:
— вычислили длину строки
— сохранили в переменную
— и использовали в условии
📌 Практический пример:
while (line := input()) != "exit":
print(f"Вы ввели: {line}")
🔥 Особенно удобно, когда нужно избежать повторных вычислений или сократить код.
Но не злоупотребляй — иногда читаемость важнее 😉
#python #фишки🚗 Готовишься к экзамену в ГИБДД?
Попробуй удобное Android-приложение для изучения ПДД и решения билетов:
👉 https://play.google.com/store/apps/details?id=com.pascal4eg.pdd
Что внутри:
✔️ Актуальные правила и штрафы
✔️ Новые экзаменационные билеты
✔️ Режим экзамена — как в ГИБДД
✔️ Лёгкое приложение — всего 30 МБ
🌙 Тёмная тема для комфортного обучения
Готовься к экзамену быстро и без лишнего стресса!
🐍 Фишка Python: множественное присваивание
В Python можно присваивать значения сразу нескольким переменным в одну строку:
a, b = 5, 10
Это не просто удобно — это ещё и позволяет делать крутые вещи 👇
🔄 Обмен значениями без временной переменной:
a, b = b, a
📦 Распаковка списков:
nums = [1, 2, 3]
x, y, z = nums
⭐ Звёздочная распаковка (очень полезно):
a, *rest = [1, 2, 3, 4]
# a = 1, rest = [2, 3, 4]
Используй это, чтобы писать более чистый и "питоничный" код 🚀🖥 Экономия памяти (Генераторы)
Пост, который показывает разницу между Junior и Middle.
🧠 Как сэкономить гигабайты памяти одной скобкой?
Все любят списковые включения (list comprehensions) за их краткость. Но если данных много, они могут "сожрать" всю оперативную память.
Сравните квадратные скобки
[] и круглые ():
import sys
# Создает весь список в памяти СРАЗУ
list_comp = [x**2 for x in range(10_000_000)]
print(sys.getsizeof(list_comp)) # ~80 MB
# Создает генератор (вычисляет элементы на лету)
gen_expr = (x**2 for x in range(10_000_000))
print(sys.getsizeof(gen_expr)) # ~104 Bytes !!!
Генератор занимает всего 104 байта, независимо от того, миллион там элементов или миллиард!
Когда использовать генератор? Когда вам нужно просто пройтись по элементам один раз (например, найти сумму: sum(x**2 for x in range(1000))).
Берегите память! 💾📁 Элегантная проверка расширений и префиксов
Частая задача: проверить, заканчивается ли строка на одно из нескольких значений (например, фильтруем картинки).
Обычно новички пишут длинные условия с
or:
filename = "photo.png"
# Громоздко ❌
if filename.endswith(".jpg") or filename.endswith(".png") or filename.endswith(".gif"):
print("Это картинка!")
Но методы .startswith() и .endswith() умеют принимать кортеж (tuple) вариантов!
# Элегантно ✅
image_exts = (".jpg", ".png", ".gif", ".jpeg")
if filename.endswith(image_exts):
print("Это картинка!")
Код становится намного чище и легче читается.🖥 Безопасные словари (`dict.get`)
Базовый, но супер-важный навык написания надежного кода.
🦺 Хватит ловить `KeyError` в словарях!
Представьте, вы получаете JSON от API или читаете конфиг. Вы пытаетесь достать значение по ключу, а его там нет. Программа падает с ошибкой
KeyError.
Вместо того чтобы писать проверки if key in data:, используйте метод `.get()`.
Он безопасно вернет None, если ключа нет. А еще лучше — ему можно передать значение по умолчанию вторым аргументом.
user_config = {"username": "admin", "language": "ru"}
# Опасно:
# theme = user_config["theme"] # ОШИБКА!
# Безопасно:
theme = user_config.get("theme", "dark")
# Если ключа "theme" нет, вернется "dark"
print(theme) # dark
Это правило хорошего тона в Python. Используйте .get() везде, где не уверены на 100% в структуре словаря! 🛡
#python #optimization #cleancode
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
