Открытый канал 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

Каналов в рубрике
1 733
Место этого канала
№ 302
Открыть рубрику →
Открыть в MAX

Публикации за период

По реакциям

Поиск и вся лента — после бесплатной регистрации. Свои даты — по подписке; владелец канала видит их бесплатно. Сортировка по реакциям — по подписке. Зарегистрироваться

Загрузка…

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

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

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

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

Оба действия с примерами в Pro Git
Просмотры: 37
Перейти в пост Открыть в MAX Сообщить о неточности
Почему функция Python помнит старые элементы списка

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

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

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

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

Разбор с примерами и коротким видео
Просмотры: 33
Перейти в пост Открыть в MAX Сообщить о неточности
Почему правило ниже в CSS не меняет цвет ссылки?

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

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

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

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

#основы #практика
Просмотры: 24
Перейти в пост Открыть в MAX Сообщить о неточности
Учёт расходов на Python: от ввода суммы до отчёта по категориям

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

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

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

#туториал #практика
Просмотры: 30
Перейти в пост Открыть в MAX Сообщить о неточности
Пропущенная запятая в Python может склеить элементы списка

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

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

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

#основы #для_новичков
Просмотры: 24
Перейти в пост Открыть в MAX Сообщить о неточности
Почему UNION удаляет строки, которые сохраняет UNION ALL?

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

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

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

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

#основы #практика
Просмотры: 26
Перейти в пост Открыть в MAX Сообщить о неточности
CSS-медиазапросы: меняем сетку и цвета по условию

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

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

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

#практика #основы
Просмотры: 23
Перейти в пост Открыть в MAX Сообщить о неточности
Выбираем плавность CSS-перехода на интерактивных примерах

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

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

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

#основы #практика
Просмотры: 23
Перейти в пост Открыть в MAX Сообщить о неточности
Переносы и пустые строки делают Python-код понятнее

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

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

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

#практика #для_новичков
Просмотры: 28
Перейти в пост Открыть в MAX Сообщить о неточности
От чатбота к агентам: опыт Митчелла Хашимото

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

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

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

#ии #инструменты
Просмотры: 27
Перейти в пост Открыть в MAX Сообщить о неточности
Вся лента — после бесплатной регистрации
ВКонтакте Телеграм Одноклассники
Избранное в datool.ru

Следите за каналом в личном кабинете

Зарегистрируйтесь в datool.ru, чтобы добавить канал «Точка входа в программирование» в избранное и отслеживать его показатели.

Зарегистрироваться
Для владельцев каналов

Подтвердите свой канал

Войдите или зарегистрируйтесь в datool.ru, затем добавьте нашего бота в канал по инструкции в личном кабинете. После проверки владения замок исчезнет и вам станет доступно управление каналом.

Войти или зарегистрироваться

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти