Zen of Python
20.1K subscribers
1.2K photos
161 videos
32 files
3.15K links
Полный Дзен Пайтона в одном канале

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Разбираем Теорию Игр с Python-библиотеками nashpy и axelrod

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

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

И вот одна из немногих интересных статей на эту тему: https://habr.com/ru/post/713120/
👍12🔥3😁1
Что скажет ChatGPT: Почему Python такой популярный?

Кто-то с помощью ChatGPT пишет дипломы, кто-то — код, а мы попросили ChatGPT написать целую статью про то, как Python набирал популярность с 1990-х годов и почему стал популярен в Data Sceince, Machine Learning, веб-разработке и разработке игр.

Пока человеческий админ пошёл собирать вещи, посмотрите, как получается у ChatGPT писать целые статьи: https://tproger.ru/articles/pochemu-python-takoj-populjarnyj/

#chatgpt #ml
🤮6👍5🔥1
​Самые популярные вопросы на собеседовании: «Как выполняется обработка исключений в Python?»

Это база, но всё равно новички часто плавают в исключениях или используют их не в полной мере. Давайте разбираться, как делать это правильно.

Для обработки исключений Python предоставляет конструкцию из трех слов: try, except и finally.

Синтаксис выглядит примерно так:
try:
# пробуем это
except:
# если try не сработал, пробуем это
finally:
# в любом случае делаем это

Например, код:
try:
val = 1 + 'A'
except:
val = 10
finally:
print('complete')
print(val)

Выдаст:
#=> complete
#=> 10

Здесь блок try терпит неудачу, ведь мы не можем складывать целые числа со строками. Блок except устанавливает val = 10, а затем блок finally выводит complete.

#собеседование
🔥23👍11💩2
Стек технологий для Python

Просто небольшая заметка, где Senior Python Developer советует инструменты и технологии, которые повсеместно применяют разработчики на Python:

https://tproger.ru/articles/stek-tehnologij-dlja-python-sovetuet-jespert/

#начинающим #инструменты
👍5💩31
Внезапно, но сервис, в котором можно выучить «всё»

Просто вбиваете запрос и сервис выводит небольшой роадмап. Админ попробовал «питонические» запросы а-ля Python, Pandas и др. И это как минимум забавно. Но что интересно, там есть информация практически по любому запросу — пусть местами скудно, но всё равно есть.

В общем, попробуйте: https://learn-anything.xyz/

#инструменты
👍22👎2
Особенности семантики exactly-once при разработке для Kafka на Python

Exactly-once — это подход, при котором сообщение доставляется получателю строго один раз, без дублирования и потери данных.

В статье рассказали про особенности семантики exactly-once на примере разработки проекта на Kafka и Python для сортировки данных: https://tproger.ru/articles/osobennosti-semantiki-exactly-once-pri-razrabotke-dlja-kafka-na-python/
Подборка актуальных вакансий для Python-разработчиков:

Python-разработчик
Где: Москва
Опыт: от 3 лет

Специалист информационной безопасности ИТ-инфраструктуры
Где: Москва
Опыт: от 1 года

Senior Python-разработчик
Где: Москва
Опыт: от 3 лет

Middle DevOps Engineer (Big Data)
Где: Москва, можно удалённо
Опыт: от 3 лет

Data Engineer (Big Data)
Где: Москва, можно удалённо
Опыт: от 1 года

#вакансии #работа
💩16👍3
👍9🤔51🤯1
Каким будет результат выполнения кода выше?
Anonymous Quiz
27%
True
66%
False
3%
None
4%
Error
👍10
Объяснение:

Списки — изменяемый тип данных. Поэтому под два разных списка создаётся отдельный объект. Даже если их значения одинаковые
👍32
​Тестируем на Python: unittest и pytest

Ничего нельзя сделать без ошибок, и с программами — то же самое. Если вы написали рабочий код, как узнать, что будет при реальном использовании? Поведёт ли себя программа так, как от неё ожидают, или что-нибудь выкинет?

Именно поэтому при создании программ 75% времени уходит вовсе не на программирование, а как раз-таки на тесты. И если вы не хотите тратить время на тесты в самом начале, вы всё равно потратите его потом, только в большем количестве.

И вот отличная статья, в которой рассказывают, как правильно проводить тестирование приложений в Python, используя unittest и pytest:

https://tproger.ru/articles/testiruem-na-python-unittest-i-pytest-instrukcija-dlja-nachinajushhih/

#qa
👍18🔥1
Как устроена RecTools — OpenSource–библиотека для рекомендательных систем

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

Рассказываем о достоинствах и недостатках RecTools и как она может быть использована в ваших проектах: https://tprg.ru/CgJX

#ml
👍16👎1
​​Самые популярные вопросы на собеседовании: «В чем разница между is и ==?»

Это вопрос с подвохом, и начинающие разработчики часто не видят разницы. И… привет, баги! Так что давайте разбираться, в чём же разница.

Если просто, то is проверяет идентичность, а == проверяет равенство. Чтобы лучше понять, создадим 2 списка, а переменной b присвоим значение списка a:
a = [1,2,3]
b = a
c = [1,2,3]

Если проверим равенство, то все объекты будут равны:
print(a == b) #=> True
print(a == c) #=> True

А вот если мы проверим их идентичность, то получается следующее:
print(a is b) #=> True
print(a is c) #=> False

Несмотря на одинаковое содержимое, сами списки представлены разными объектами в памяти, поэтому оператор is для одинаковых списков возвращает False. Проверить очень просто — у объектов будут разные идентификаторы:
print(id(a)) #=> 4369567560
print(id(b)) #=> 4369567560
print(id(c)) #=> 4369567624

Это всё, что нужно знать про is и == на базовом уровне. Но есть несколько лайфхаков и нюансов, которые помогут использовать эти операторы на полную катушку. О них расскажу чуть позже.

#собеседование
👍62🔥2🥰2💯2🐳1
Где полезна асинхронность в Python, а где — нет

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

Если вы новичок и ещё не разбирались в синхронном/асинхронном программировании, не слышали про параллелизм и не знаете, зачем все этим заумные слова придумали, это заметка поможет разобраться:

https://habr.com/ru/company/kts/blog/713084/

#начинающим
🔥84👍3
Forwarded from Типичный программист
С Днём Святого Валентина!
83👍16💩7🔥1