Точка входа в программирование
18.1K subscribers
1.7K photos
293 videos
4 files
3.28K links
Фундаментальные знания по основам программирования

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Работать с sqlalchemy в Python теперь можно проще

Наш пользователь написал библиотеку, которая помогает очень просто работать с sqlalchemy в async python приложениях. Минимум кода для простых сценариев, но и максимум свободы для сложных.

Называется она context-async-sqlalchemy и в этой статье автор показал, как именно она работает и в чём её польза.

#python #sqlalchemy
1
Работа с временными рядами в Python

Временные ряды — это наборы данных, где каждая точка данных связана с определенным моментом времени. Например: температурные измерения, динамика финансовых индексов и показатели физической активности в часах.

Зачем это нужно? Временные ряды предоставляют нам ценную информацию о том, как меняются данные со временем. Они используются для прогнозирований спроса и трафика, для обслуживания промышленного оборудования, для финансовой аналитики и многих других процессов.

Автор этой статьи даст информацию об основных концепциях и методах работы с ними, покажет, как импортировать данные временных рядов и визуализировать их, а также покажет, как спрогнозировать будущее.

#статья #python
🔥1
Антипаттерны Python, которые побеждают даже опытных

Пример из реального проекта, который сломал автора: код от C++-разраба, требующий доработок на Python. Здесь показаны типичные беды кода: типизация, большие функции, переприсваивание и так далее.

С таким может столкнуться каждый, так что лучше учиться на чужих ошибках, чем набивать свои шишки. Подробности в статье.

#python
3
Экспресс-курс по Python для начинающих

Многие начинающие разработчики выбирают Python в качестве своего первого языка из-за его невысокого порога вхождения. Можете убедиться в этом сами, попробовав разобраться в основах языка по этому экспресс-курсу и написав свои первые программы:

https://youtu.be/wDmPgXhlDIg?si=odCR8hgk8LdoxxMk

#python

@prog_point (теперь ещё в VK и Max)
1
Разработка DHCP-сервера на Python

Сегодня мы рассмотрим, как создать собственный DHCP‑сервер на Python. Суть сервера проста — он динамически раздаёт IP‑адреса устройствам в сети, избавляя нас от головной боли статической конфигурации. Он будет ловить DHCP‑запросы от клиентов, выбирать свободный IP из заранее подготовленного пула и подтверждать выдачу. Так мы убъем двух зайцев: и с питоном поупражняемся, и с работой сетей поближе познакомимся.

Начинаем тут.

Ставь ❤️, если любишь практиковаться с питоном.

#python

@prog_point (теперь ещё в VK и Max)
2
This media is not supported in your browser
VIEW IN TELEGRAM
Собрали всё, что нужно знать о Python — от первой строчки до middle-уровня

Python — язык №1 в мире по TIOBE 2026. Его выбирают за то, что рабочий код можно написать уже через несколько часов знакомства. Но потом часто теряешься: что учить дальше и в каком порядке?

В путеводителе по Python разобраны все ключевые темы по порядку: типы данных и duck typing, функции с замыканиями и декораторами, ООП с магическими методами, asyncio и GIL, веб-фреймворки Django / Flask / FastAPI, Data Science и тестирование с pytest. Плюс свежее: Python 3.14 получил экспериментальный JIT-компилятор — язык ускоряется, не теряя простоты.

#python
3🤔1
Интерактивный визуализатор того, как GPT генерирует текст — прямо в браузере

Карпати недавно опубликовал microgpt — полный GPT в 200 строках Python без зависимостей. Один разработчик сделал из этого обучающий сайт: открываете страницу, листаете — и видите пошагово, как нейросеть генерирует имена.Никакой установки, всё работает в браузере. Если хотите понять, что происходит внутри трансформера, но академические статьи пока кажутся тяжёлыми — хорошая точка входа.

Вам больше заходят такие интерактивные визуализаторы или лучше статьи и видео?

#ии #python

@prog_point (теперь ещё в VK и Max)
3
Симулятор кубиков, который учит собирать программу по частям

В этом проекте ценность не в самих кубиках, а в том, что вы проходите почти весь путь маленькой программы для терминала: спросить у пользователя число, проверить ввод, сгенерировать случайные результаты, сохранить их в список и красиво вывести на экран.

По разбору Real Python вы пишете dice.py: функция parse_input() отсекает всё кроме чисел от 1 до 6, roll_dice() использует random.randint(), а генератор ASCII-картинок рисует грани кубиков символами. ASCII здесь — просто картинка из текста, без графики и библиотек.

Хорошая тренировка, если хочется понять, как функции, циклы, списки и строки соединяются в одну работающую программу, а не живут отдельными упражнениями. Разбор идёт пошагово, так что можно собрать проект руками и потом усложнить: добавить кубики с другим числом граней или повторные броски.

#python
2
Python-скрипт не обязан быть простынёй из команд сверху вниз

На старте нормально писать .py-файл как список действий: импортировали библиотеку, что-то скачали, обработали, вывели результат. Но чем длиннее такой скрипт, тем сложнее понять, где вход, где настройки, где основная логика и что вообще можно переиспользовать.

Real Python показывает, как постепенно привести скрипт к более взрослому виду: разнести импорты, вынести константы, добавить main(), использовать if __name__ == "__main__", принимать аргументы из командной строки и аккуратнее оформлять вывод.

Хороший следующий шаг после прочтения — взять свой старый скрипт и попытаться его декомпозировать. Хотя бы вынести настройки в константы, а основной запуск положить в main().

#python
1
Создаём программу, которая сама умеет выбирать модели в зависимости от задачи

Чем дольше работаешь с ИИ, тем больше убеждаешься, что под разные задачи нужны разные модели. Дя простых задач не нужна дорогая модель, а со сложной дешевая может не справиться. А ещё, используя только одну модель, вы рискуете получить кирпич, если эта модель вдруг станет недоступна.

Выход — разделить запросы по сложности и держать под рукой запасной вариант. Сначала ваш скрипт решает, насколько труден вопрос, потом отправляет простое к дешёвой модели, а сложное — к мощной. При сбое переключается на резервную модель. Туториал разбирает это на Python шаг за шагом.

#python
1
MMO с 23-летней историей переезжает с Python 2 на Python 3 — и вот почему это долго

Вы наверняка слышали, что Python 2 давно не поддерживается. Живой пример того, во что превращается такой переезд, — EVE Online. Прошлый раз версию интерпретатора в игре меняли в 2010 году.

Масштаб: 2,4 млн строк Python примерно в 20 тысячах файлов, поверх 23 лет данных живых игроков — персонажи, навыки, имущество, внутриигровая валюта. Часть кода написана по правилам Python 2.3 и 2.5, которые тройка уже не принимает.

При пробной компиляции обоими интерпретаторами 95,9% файлов собрались сразу. Осталось около 3300 строк явных несовместимостей: примерно 1500 старых print, 800 литералов вида 123L, 600 старых форм except и 50 операторов <>. Это как раз то, что чинит 2to3.

Опаснее другое: около 20 тысяч строк синтаксически корректны в обеих версиях, но работают по-разному. Классический пример, который стоит запомнить: 1 / 2 даёт 0 в Python 2 и 0.5 в Python 3. Такое не найдёт ни компилятор, ни линтер — только тесты и внимательное чтение.

В нашем канале Zen of Python разобрали план миграции подробнее.

#python #основы
❤‍🔥3
Python Tutor показывает выполнение программы по одному шагу

Когда программа выдаёт неверный результат, новичку бывает трудно понять, в какой момент всё пошло не так. Python Tutor запускает код в браузере и позволяет двигаться вперёд и назад по отдельным шагам.

На экране видно, какие значения сейчас лежат в переменных, как меняются списки и словари, какие объекты связаны друг с другом. Ещё сервис показывает, какая функция выполняется и из какой функции её вызвали. Так можно найти точный шаг, на котором состояние программы стало неправильным, без множества команд print.

Поддерживаются Python, Java, C, C++ и JavaScript. Устанавливать программу и создавать учётную запись не требуется: код можно вставить прямо на сайте. С 2010 года сервисом воспользовались более 25 млн человек из более чем 180 стран. Он создал свыше 500 млн визуализаций и применяется более чем в 10 000 учебных заведений.

#основы #python #отладка
3🫡1🗿1
Первый проект на Python: собираем игру из знакомых конструкций

После знакомства с основами синтаксиса можно перейти к небольшой программе, которую получится закончить за один курс. На Real Python собирают с нуля консольную игру «Камень, ножницы, бумага» и объясняют каждый этап.

По ходу работы вы потренируетесь получать ввод от пользователя, повторять действия с помощью циклов и делить программу на функции. В проекте также используются словари и перечисления enum. Все эти элементы складываются в одну работающую игру, поэтому видно, зачем они нужны вместе.

Курс состоит из 8 уроков, примерно 48 минут видео и двух скачиваемых материалов. Кроме видео, в него входят текст, упражнения и тест. Код проверен на Python 3.9, заявлена совместимость с версиями 3.4 и новее.

Часть материалов платная: некоторые уроки и итоговый тест доступны только участникам Real Python.

#основы #python #проект
🆒1
Двойное подчёркивание в Python не делает атрибут приватным

Новички часто пишут self.__value и думают, что закрыли поле от внешнего мира. На самом деле Python просто переименовывает его: внутри класса Helper атрибут __value превращается в _Helper__value. Это называется name mangling, и обойти его можно, написав это длинное имя руками.

Ловушка глубже, чем кажется. Переименование зависит только от имени класса, не от модуля. Если два независимых класса в разных файлах называются Helper и оба хранят __value, а кто-то наследуется от обоих, поля сталкиваются в одном и том же _Helper__value: один класс кладёт туда строку, другой число, и код падает с TypeError на сложении. Именно такой пример разбирают сейчас на форуме разработчиков Python, обсуждая, нужна ли языку настоящая приватность.

Что с этим делать сегодня. Одно подчёркивание _value честно говорит «не трогай снаружи» и ничего не переименовывает. А если два класса должны хранить своё состояние независимо, чаще безопаснее не наследоваться от обоих, а держать их объекты внутри как поля.

#python #основы
🆒2💔1
В документации Python появилась таблица, сколько стоит каждая операция со списком и словарём

Почему l.pop() дешёвый, а l.pop(0) нет, и чем x in set отличается от x in list: раньше за этим ходили в вики или исходники CPython. В документации 3.16 появилась отдельная страница со сложностью операций для list, tuple, dict, set, str и range в нотации O-большое.

Половина вопросов «почему тормозит» на собеседованиях закрывается этой таблицей. В нашем канале Zen of Python разобрали подробнее.

#python #основы
3
Соберите первую нейросеть на Python без матана и видеокарты

Слово «нейросеть» звучит так, будто нужен продвинутый матанализ, мощная машина и тысячи строк кода. Ничего из этого не нужно.

На базовом уровне нейросеть это математическая модель, которая берёт на вход числа, что-то с ними считает, выдаёт предсказание, сравнивает его с правильным ответом и подправляет себя, чтобы в следующий раз ошибиться меньше. Этот цикл и есть обучение, всё остальное надстраивается сверху.

В туториале такую сеть строят руками на Python и NumPy, без фреймворков, чтобы был виден каждый шаг. Хороший следующий шаг после основ языка: слова «слой», «веса» и «обучение» перестанут быть заклинаниями и станут строчками кода, которые вы написали сами.

#python
3
Что делать, когда файл с данными не открывает даже ноутбук

Файл на несколько сотен миллионов строк, просьба «просто быстро посчитай сумму по регионам», спиннер на десять минут и упавшая программа. Дело не в вопросе, а в попытке сделать работу сотни компьютеров на одном.

Apache Spark — движок, который режет одну большую задачу на куски, считает их на многих машинах одновременно и собирает ответ обратно. PySpark это его питоновский интерфейс: вы пишете обычный на вид Python, а параллельная работа происходит под капотом.

Разбор без диссертации рассчитан минут на тринадцать и ведёт от «что это вообще такое» до первой работающей задачи на PySpark, вместе с ловушками, в которые попадают новички. Открывайте его в тот момент, когда pandas на вашем файле начнёт задыхаться.

#python
❤‍🔥2
Соберите Discord-бота на Python и заодно разберитесь с асинхронностью

Со стороны бот выглядит сложно: отвечает на сообщения, помнит куски разговора, живёт круглосуточно. На деле это программа на Python, которая подключается к Discord, ждёт событие и решает, как на него ответить.

Как учебный проект он хорош тем, что за одного бота вы трогаете сразу несколько тем: команды, события, асинхронный Python, хранение состояния пользователя, переменные окружения и простейший деплой. Обычно это учат по отдельности и не видят, как оно соединяется.

Туториал начинает с совсем маленького бота и наращивает по одной функции. Каждый шаг можно запустить и увидеть результат, а не ждать финала.

#python
3
Сообщение об ошибке в Python подсказывает, где сломался код, если читать его с конца

Программа упала, в терминале простыня красного текста, которую хочется закрыть не читая. А имя ошибки и пояснение стоят в последней строке. NameError: переменной с таким именем нигде не создано, обычно опечатка. IndexError: вы просите шестой элемент у списка из пяти. Строки выше показывают файл и номер строки, где всё оборвалось.

Когда имя понятно, а причина нет, ставьте print перед подозрительным местом и сверяйте значения переменных с тем, что ожидали. Если print становится слишком много, включайте встроенный отладчик pdb: он останавливает программу в нужной точке и показывает значения прямо там. Хендбук freeCodeCamp по отладке разбирает имена ошибок подробнее и учит работать с pdb.

Возьмите ошибку, на которой застряли недавно, и разложите её по схеме: имя, пояснение, номер строки.

#python #основы
🔥2
Порядок, в котором стоит учить основы Python, чтобы не застрять на середине

Новичка обычно топит не сложность языка, а разрозненность: переменные из одного урока, циклы из другого, а как из этого собирается программа, непонятно.

Гид freeCodeCamp выкладывает основы в один маршрут: установка Python и редактор, «Hello, World», переменные и типы данных, операторы, условия if/elif/else, циклы for и while, затем break и continue, и только в конце функции.

Читать его подряд бесполезно. После каждого раздела печатайте пример руками, а потом ломайте: поменяйте одно значение и посмотрите, что ответит Python. К разделу про функции у вас накопятся куски кода, из которых собирается маленький скрипт: функция считает, условие выбирает, цикл повторяет.

#python #основы
1