Типичный программист
81.4K subscribers
2.66K photos
891 videos
8 files
7.45K links
Всё самое интересное по программированию

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

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

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

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

VK: vk.com/tproger

Регистрация в перечне РКН: https://tprg.ru/mJwo
Download Telegram
Решаем задачу коммивояжёра как профи

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

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

В статье рассказали подробнее о том, что это такое. И реализовали на Python различные подходы к решению задачи коммивояжёра: https://tproger.ru/articles/metaevristicheskie-podhody-k-reweniyu-zadachi-kommivoyazhyora

#задачки #python
Мошенничество FTX: почему для мошеннических действий не стоит писать код на Python

FTX — онлайн-сервис обмена цифровых валют. В 2021 году компания имела более миллиона пользователей и объем торгов был третьим среди криптобирж. Уже в ноябре 2022 года компания подала заявление о банкротстве. Но в работе криптобиржи нашли много странных историй, похожих на мошеннические действия. До сих пор ведется расследование.

На днях стало известно, что свидетельства мошенничества FTX обнаружились в самом коде. Впервые взглянуть на кодовую базу FTX мы смогли в прошлую среду.

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

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

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

Если интересно посмотреть на другие фрагменты кода, указывающие на мошеннические действия, и почувствовать себя в роли следователя, эта статья для вас: https://habr.com/ru/articles/766960/

#безопасность #python #криптовалюта
Автор курсов по Python и Pandas получил вечный бан за рекламу торговли экзотическими животными — решение вынес бот

Ревен М. Лернер создает курсы по Python, выпускает книги с задачами по Python и Pandas. Python и Pandas действительно легко спутать в английском языке с видами редких животных. Хотя названия технологий основаны не на схожести с животными: Python — отсылка к британской комик-группе «Монти Пайтон», а Pandas — сокращение от «Python data analysis».

Лернер попытался разместить рекламу курсов Python и Pandas. Но система сочла её рекламой продажи экзотических животных и заблокировала аккаунт рекламодателя.

Аккаунт не помогло вернуть даже вмешательство человека. Решение о бане вынес бот, но обжаловать его можно было в течение 180 дней. Лернер не знал о бане и просто не успел обжаловать решение. Он экспериментировал с рекламой пару лет назад и просто забыл про свой кабинет.

Если тоже рекламируете курсы про IT на английском, держите несколько идей для рекламных объявлений: «LaTeX для новичков», «убить Python», «получить доступ к Cocaine».

#кек #ии #python
Как и обещали — вторая часть гайда по работе с Pandas

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

А бонусом внутри вы найдете список альтернативных инструментов для работы с большими данными.

#python #библиотеки
Модуль, пакет, библиотека, фреймворк: в чём разница?

Разобрали ключевые отличия фреймворка от библиотеки и другими типами импортируемых объектов в Python с применением диаграмм. Вкратце разницу обозначили на картинке. А подробнее рассказали в статье: https://tproger.ru/articles/modul-paket-biblioteka-frejmvork-razbiraemsya-v-raznice

#начинающим #python #библиотеки
А вы знали, что за ответы на StackOverflow награждают?

На скриншоте один из самых популярных авторов ответов StackOverflow. И высока вероятность, что вы тоже могли на него натыкаться. Мартин — один из восьми юзеров на StackOverflow с репутацией больше миллиона. По тегу Python — воообще первый с почти 20-ю тысячами ответов.

Недавно Мартина наградили почётным званием PSF Fellow за его огромный вклад в коммьюнити: https://pyfound.blogspot.com/2023/09/announcing-python-software-foundation.html

Гуглить и читать документацию тоже полезно, но вот это действительно та поддержка, которую ожидаешь от ребят со StackOverflow. Достойно уважения.

#python
Для многих новичков концепция ООП кажется несуразной и абсолютно непрактичной

Давайте разберемся, как она работает в Python на примере класса Heap. Для этого мы составили пошаговый план, наполненный теорией и практическими задачами.

#python #ооп #дляначинающих
Как использовать try — except и не испортить себе жизнь

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

Справиться с негативом помогает конструкция try — except. В Python это лишь способ обработать ошибку и не «обронить» программу. Но если использовать ее не там и не так, лучше не станет (или вовсе будет хуже).

Чтобы таких проблем не возникало, разобрали на примерах, когда и как отлавливать ошибки с помощью блока и рассказали, когда эту конструкцию лучше не задействовать: https://tproger.ru/articles/kak-ispolzovat-try-except-i-ne-isportit-sebe-zhizn

#python
Python станет быстрее?

Дело в том, что в альфа-версии 3.13.0a6 нашлось упоминание встроенного JIT-компилятора. Если вкратце, то это инструмент, который компилирует код Python в машинный код «на лету», во время выполнения программы. Это позволяет языку работать значительно быстрее.

Данная функция пока экспериментальная, но затестить можно уже сейчас. Для активации нужно добавить опцию --enable-experimental-jit при сборке CPython. 

Подробнее расписали тут.

#python
Большой чит-лист по Python: годный репозиторий с 35 тысячами звёзд

Шпаргалка покрывает большинство возможностей Python, поэтому её полезно держать при себе каждому питонисту.

Сохраните себе, чтобы не потерять: https://github.com/gto76/python-cheatsheet

#python
Небольшой чекап по знанию Python библиотек

Недавно мы рассказали о 30 самых полезных библиотеках Python для веб-разработки в 2024 году. Если ещё не читали, обязательно загляните!

А если вы уже уверены в своих силах, почему бы не пройти тест, который покажет, насколько хорошо вы разбираетесь в библиотеках Python? Возможно, вы даже найдёте что-то новое и полезное.

#python
This media is not supported in your browser
VIEW IN TELEGRAM
Ловите залипательную инфографику о том, как исполняется код Python и Java

#python #java
Подборка игр для программистов по самым разным направлениям:

1. На CodinGame с помощью написания кода и создания собственного ИИ вам предстоит решить самые разнообразные и весёлые проблемы. Сайт поддерживает большинство языков программирования.

2. Check iO — это браузерная игра в жанре «Приключение», которая поможет с изучением Python.

3. В Code Monkey вы научитесь кодить онлайн, хватая бананы. На западе учителя часто используют Code Monkey для преподавания программирования на CoffeScript и Python.

4. Давно хотели научиться выходить из Vim? Игра Vim Adventures поможет сделать это в наиболее весёлой и интерактивной форме.

5. Любите битвы роботов? Тогда игра Robocode для вас. Вы научитесь программировать, создавая боевых роботов-танков на Java или .NET. Когда вы создадите робота, на экране в реальном времени начнётся битва.

#начинающим #python #csharp #java #vim
Практика, практика и ничего кроме практики

KodeKloud Free Labs — площадка c интерактивными заданиями и реальными сценариями, которые помогут погрузиться в практическое применение принципов DevOps и облачных технологий, не выходя из браузера.

В бесплатных лабах сейчас есть: Linux, Кубер, Docker, GiT, Python и прочие прелести. 

#devops #docker #git #python
За что стоит любить программирование, так это за то, что с помощью него можно решить многие жизненные проблемы

Например, автор этой истории создал систему, которая помогает находить свободное парковочное место во дворе дома всего за 5 секунд. Для этого он использовал обычную камеру видеонаблюдения и Telegram бота, написанного с помощью Python, Matterport Mask R-CNN, OpenCV и YOLO. В итоге пользователю достаточно нажать «Найди парковку». И бот находит места и отрисовывает их на фото, которое возвращается пользователю.

Подробнее о процессе разработки, фишках и подводных камнях — в статье: https://habr.com/ru/post/685108/

#нейросети #diy #telegram #python #opencv
Такое мы сохраняем: репозиторий с 350+ туториалов для ваших Python-проектов

Хотите попробовать свои силы в этичном хакерстве, научить модель машинного обучения, поиграться с веб-скрапингом или просто сделать игру? Он вам в этом поможет.

Примеры проектов:
Этичный хакинг: от создания ARP Spoofer до WiFi-сканера.
Геймдев: Flappy Bird, Tetris или даже Space Invaders — весь код уже есть.
GUI-программы: калькуляторы, текстовые редакторы и даже будильники.
ML: классификация текста, генерация изображений или обучение BERT.

А ещё обработка данных, веб-программирование, взаимодействие с API. Перечислить всё тут просто не получится.

#python
This media is not supported in your browser
VIEW IN TELEGRAM
Microsoft открыла исходный код Python-либы для преобразования файлов в Markdown

MarkItDown — идеальное решение для конвертации файлов и офисных документов в Markdown. Подойдёт для анализа, индексации или упорядочивания данных.

Что поддерживает:

— PDF, PowerPoint, Word, Excel.
— Изображения (EXIF и OCR).
— Аудио (метаданные и транскрипция речи).
— HTML (включая специальную обработку Wikipedia).
— Text-based форматы: CSV, JSON, XML и другие.

Плюсом можно прикрутить LLM для описания изображений.

#инструменты #python #анализ