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

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
​Самые популярные вопросы на собеседовании: «Как выполняется обработка исключений в 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
Как ускорить код на Python?

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

Есть у Python и один минус, который превращается в жирный довод в спорах про «самый лучший ЯП» — это низкая скорость работы по сравнению с программами, написанными на компилируемых языках программирования (C++ и др).

Но на самом деле, тут всё зависит от прямоты рук. Давайте разбираться, как проанализировать и здорово ускорить код на Python: https://tproger.ru/articles/kak-uskorit-prilozheniya-na-python/
13👍8
Дайджест Python: пишем AI-плеер для сайта и боремся с лесными пожарами

Собрали свежий дайджест из лучших материалов по Python.

Узнайте, как создать плеер для сайта на основе ИИ, как предсказать развитие лесных пожаров, почему крупные IT-компании США массово увольняют сотрудников и как быстро прокачать свой код на Python: https://tproger.ru/articles/dajdzhest-python-3-pishem-ai-pleer-dlja-sajta-i-boremsja-s-lesnymi-pozharami/

#дайджест
🔥4👍1
​​Самые популярные вопросы на собеседовании: « В чем разница между remove, del и pop?»

Тип данных List в Python помогает сохранять разные типы данных в определенной связанной последовательности. И есть несколько методов для удаления элементов из списка. Вот в чём их основное различие:

1. remove() удаляет первое совпадающее значение:
li = ['a','b','c','d']
li.remove('b')
print(li)

#=> ['a', 'c', 'd']

2. del удаляет элемент по его индексу:
li = ['a','b','c','d']
del li[0]
print(li)

#=> ['b', 'c', 'd']

3. pop() удаляет элемент по индексу и возвращает этот элемент:
li = ['a','b','c','d']
print(li.pop(2))
print(li)

#=> 'c'
#=> ['a', 'b', 'd']

#собеседование
👍54