New We are sorting MAX channels into categories and territories. Read the news
Public channel ID 69133179901241

Точка входа в программирование

Фундаментальные знания по основам программирования.

Всё о вебе: @tproger_web
Типичный программист: @tproger
IT Юмор: @ithumor
Новости IT: @your_tech
Инструменты для программистов: @prog_tools
Всё о Python: @zen_of_python
Мобильная разработка: @mobi_dev

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

Сайт: tprg.ru/site

Разместить рекламу: t.me/tproger_sales_bot

Channels in category
2 093
This channel's rank
№ 324
Open category →
Open in MAX

Posts for the period

By reactions

Search and the whole feed — after free registration. Custom dates — with a subscription; the channel owner sees them for free. Sorting by reactions — with a subscription. Sign up

Loading…

Как убрать файл из будущего коммита и сохранить правки

После git add изменения попадают в область подготовки коммита. Если туда случайно добавили лишний файл, команда git restore --staged file.txt уберёт его изменения из этой области, а текст в рабочем файле сохранится.

Потренируйтесь в отдельном учебном репозитории, где уже есть первый коммит с file.txt. Измените файл, добавьте его через git add, затем выполните git restore --staged для него и посмотрите git status. Правки снова будут показаны как не подготовленные к коммиту.

У git restore file.txt другое действие: он заменяет содержимое рабочего файла версией из области подготовки. После снятия изменений с подготовки это будет версия последнего коммита, поэтому учебные правки исчезнут.

Оба действия с примерами в Pro Git
Views: 68
Go to post Open in MAX Report an inaccuracy
Почему функция Python помнит старые элементы списка

В функции с параметром items=[] пустой список создаётся один раз, когда Python выполняет определение функции. Если добавлять в него элементы, следующий вызов без этого аргумента получит тот же изменённый список.

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

Затем замените значение по умолчанию на None. Внутри функции проверяйте items is None и в этом случае создавайте новый список. Повторите два вызова: теперь у каждой задачи будет отдельный список.

Такой опыт помогает понять, когда создаются значения по умолчанию и откуда берётся состояние между вызовами.

Разбор с примерами и коротким видео
Views: 62
Go to post Open in MAX Report an inaccuracy
Loading image…
Почему правило ниже в CSS не меняет цвет ссылки?

Порядок записи решает только при равной специфичности, то есть весе селекторов. Браузер сравнивает три числа: количество идентификаторов; классов, атрибутов и псевдоклассов; тегов и псевдоэлементов. Сравнивает слева направо, без сложения: первое различие определяет победителя.

Возьмите ссылку внутри блока с классом widget, вложенного в блок с id="sidebar". Задайте правила:
#sidebar .widget a { color: navy; }
.widget a { color: teal; }

Ссылка будет тёмно-синей: (1, 1, 1) сильнее (0, 1, 1). Уберите #sidebar: веса сравняются, и второе правило сделает ссылку бирюзовой.

Этот пример сравнения селекторов проверяйте без !important и слоёв каскада: слои группируют правила и задают приоритет раньше сравнения весов.

#основы #практика
Views: 33
Go to post Open in MAX Report an inaccuracy
Loading image…
Учёт расходов на Python: от ввода суммы до отчёта по категориям

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

Суммы хранятся целым числом центов: 4,50 превращается в 450. Так при сложении не накапливаются погрешности дробных чисел. Для отчёта программа складывает расходы каждой категории в словаре, где названию категории соответствует её сумма.

Добавьте несколько расходов, перезапустите программу и сверьте итог вручную. Используйте учебные данные: если JSON-файл повреждён, код начинает с пустого списка расходов. После сборки можно добавить месячный бюджет для каждой категории.

#туториал #практика
Views: 40
Go to post Open in MAX Report an inaccuracy
Loading image…
Пропущенная запятая в Python может склеить элементы списка

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

В условном примере ['учить' 'писать', 'код'] первые две строки склеятся. Получится ['учитьписать', 'код']: два элемента вместо трёх. Функция len(), которая возвращает число элементов списка, покажет 2.

Верните запятую между первыми двумя строками и проверьте длину снова: получится 3. В многострочном списке ставьте запятую и после последнего элемента: при переносе его выше разделитель останется с ним и поможет избежать случайного склеивания.

#основы #для_новичков
Views: 32
Go to post Open in MAX Report an inaccuracy
Почему UNION удаляет строки, которые сохраняет UNION ALL?

Оба оператора объединяют строки результатов SELECT, запросов на выборку данных. UNION ALL сохраняет каждое появление строки. UNION убирает повторы из общего результата: одинаковые строки превращаются в одну, даже если пришли из одного SELECT.

Допустим, первый запрос вернул числа 1, 2, 3, второй — 3, 4, 5. С UNION ALL получится шесть строк с двумя тройками. С UNION получится пять строк: тройка останется одна.

Сравниваются все выбранные столбцы. Если у текущего и архивного заказа одинаковый идентификатор, но разные выбранные временные метки, UNION сохранит обе строки.

Повторите пример с двумя наборами чисел и сравните количество строк. Чтобы отсортировать вывод, добавьте ORDER BY в конец запроса.

#основы #практика
Views: 32
Go to post Open in MAX Report an inaccuracy
Loading image…
CSS-медиазапросы: меняем сетку и цвета по условию

Медиазапрос включает CSS-правила, когда выполняется условие: например, области просмотра хватает ширины или в системе выбрана тёмная тема. В примерах Coddy с работающим предпросмотром можно проверить оба сценария.

Начните с сетки: сужайте окно браузера и наблюдайте, как три колонки превращаются в две, а затем в одну. Правила min-width, задающие минимальную ширину, идут от меньшего порога к большему. На широком окне оба условия выполняются, и более позднее правило определяет число колонок.

Затем попробуйте тёмную тему: пример меняет переменные с цветами вслед за системной настройкой. Если мобильная сетка не появляется на телефоне, разбор метатега viewport объясняет, как задать браузеру ширину страницы по ширине устройства.

#практика #основы
Views: 28
Go to post Open in MAX Report an inaccuracy
Loading image…
Выбираем плавность CSS-перехода на интерактивных примерах

Элементы могут пройти одинаковое расстояние за одинаковое время, но двигаться по-разному. Функция плавности задаёт, как меняется скорость на этом пути.

В интерактивном сравнении пяти функций это видно на графиках и движущихся маркерах. У linear скорость постоянная. У ease короткий плавный старт и долгое замедление. ease-in ускоряет элемент к концу и подходит для исчезновения. ease-out замедляет его перед остановкой и подходит для появления. ease-in-out смягчает и начало, и конец движения.

Запустите демонстрации и сравните, где маркеры обгоняют друг друга. Затем попробуйте выбранную функцию в своём CSS-переходе через свойство transition-timing-function. Для разбора нужны основы CSS-переходов: длительность, задержка и выбор изменяемого свойства.

#основы #практика
Views: 25
Go to post Open in MAX Report an inaccuracy
Loading image…
Переносы и пустые строки делают Python-код понятнее

Длинный вызов функции может помещаться в одну строку, но его аргументы всё равно трудно различить. В Python выражение внутри скобок можно переносить на несколько строк: так проще увидеть отдельные части вызова.

В разборе приёмов оформления Python-кода показано, как разнести аргументы функции и элементы списка по строкам, а логические блоки отделить пустыми строками. Переносы выбирают по смыслу, а не только по длине строки. Есть и ограничения: программы автоматического форматирования могут снова собрать короткое выражение в одну строку.

Попробуйте пример с print из статьи: разнесите аргументы по строкам и добавьте запятую после последнего. Она помогает сохранить переносы при автоматическом форматировании. Сравните результат с исходным вызовом.

#практика #для_новичков
Views: 30
Go to post Open in MAX Report an inaccuracy
От чатбота к агентам: опыт Митчелла Хашимото

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

Так он выяснял, какие задачи можно поручать ИИ. Дальше добавлял инструкции в AGENTS.md, файл с правилами проекта, и способы проверить изменения, включая запуск тестов.

В истории освоения ИИ в разработке Хашимото связывает выбор задач с настройкой рабочего окружения. Отдельные чаты при этом остались в его повседневной работе.

#ии #инструменты
Views: 32
Go to post Open in MAX Report an inaccuracy
The full feed — after free sign-up
VKontakte Telegram Odnoklassniki
Favorites at datool.ru

Follow the channel in your account

Sign up at datool.ru to add the channel “Точка входа в программирование” to favorites and track its metrics.

Sign up
For channel owners

Verify your channel

Sign in or sign up at datool.ru, then add our bot to the channel following the instructions in your account. Once ownership is verified, the lock disappears and channel management becomes available.

Sign in or sign up

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go