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?

На 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
У нас для вас отличные новости! Наш сайт обновился и теперь может уведомлять по почте и в Telegram о новых материалах, которые интересны именно вам

Для этого вам нужно:

1. Авторизоваться на сайте tproger.ru
2. Зайти в свой профиль и подписаться на интересные вам теги в разделе «Подписки». Например, библиотеки, инструменты и другие
3. В разделе уведомлений выбрать, как именно вы хотите получать уведомления
4. Всё! Вы великолепны и теперь всегда будете первым узнавать о свежих материалах
💩10👍4
Какие книги по Python вы читали недавно? Какая книга вам понравилась больше всего, а какую лучше вообще не открывать?
❤‍🔥8💩1
Forwarded from IT Юмор
Media is too big
VIEW IN TELEGRAM
«Я не смог найти подходящий фреймворк, поэтому напишу свой»
😁1614👍3💩2
Введение в Git: от установки до основных команд

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

И сегодня умение работать с Git — мастхев для разработчика на любом языке программирования. Если ещё не разбирались с Git, вот простой и доступный гайд для начинающих: https://tproger.ru/translations/beginner-git-cheatsheet/

#git #начинающим
👍14
Как писать чистый код на Python?

Python — один из наиболее элегантных и чистых языков программирования. Но красивый и чистый синтаксис не означает чистый код.

Бьерн Страуструп, создатель C++, говорит, что чистый код должен быть красивым и эффективным. Логика должна быть понятной, зависимостей как можно меньше, а производительность — приближена к оптимальной.

Годная заметка, в которой показывают, как реализовать это всё на Python: https://pythonist.ru/kak-pisat-chistyj-kod-na-python/
🔥8👍3
Ответ:

Функция-декоратор — это функция, которая оборачивает другую функцию. В разработке она используется для расширения обёрнутой функции
🔥23👍3
​​Самые популярные вопросы на собеседовании: «Что такое декоратор?»

Этот вопрос, пожалуй, встречается на каждом собеседовании. Вообще декораторы — тема большая и как-нибудь обязательно найду хороший материал, чтобы раскрыть её шире. Но а пока давайте базово разберёмся в этом вопросе.

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

Напишем функцию декоратора
В качестве аргумента он принимает функцию func. Декоратор определяет функцию log_function_called, которая вызывает func() и выполняет код print(f'{func} called.'). А затем возвращает определенную им функцию:
def logging(func):
def log_function_called():
print(f'{func} called.')
func()
return log_function_called

Напишем другие функции, к которым позже добавим декоратор:
def my_name():
print('chris')
def friends_name():
print('naruto')

my_name() #=> chris
friends_name() #=> naruto

Теперь добавим декоратор к эти двум функциям:
@logging
def my_name():
print('chris')
@logging
def friends_name():
print('naruto')

my_name()
#=> <function my_name at 0x10fca5a60> called.
#=> chris

friends_name()
#=> <function friends_name at 0x10fca5f28> called.
#=> naruto

Теперь легко добавить ведение журнала в любую функцию, которую мы пишем. Достаточно написать перед ней @logging.

#собеседование
👍26👎1🔥1💩1
Первый взгляд на Arduino Lab for MicroPython и сравнение с Thonny IDE

В ноябре 2022 года Arduino объявили, что MicroPython стал частью их экосистемы. Вместе с этим разработчики выпустили новую IDE — Arduino Lab for MicroPython. Но чем она лучше той же Thonny, которую до сих пор используют для программирования микроконтроллеров на Python?

Если работаете или планируете работать с Arduino, вот небольшая заметка с обзором новой функциональности: https://habr.com/ru/company/selectel/blog/716098/

#arduino
👍3
Leetcode 934: Разбор задачи на Python с использованием dfs + bfs

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

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

Вам дана двоичная матрица размера n x n, где 1 представляет сушу, а 0 представляет воду. Остров — это 4-направленно связанная группа 1, не связанная ни с какими другими 1. В сетке ровно два острова. Вы можете изменить 0 на 1, чтобы соединить два острова в один остров.

Как найти наименьшее количество нулей, которое нужно перевернуть, чтобы соединить два острова?

Решение разобрали здесь: https://tproger.ru/articles/leetcode-934-razbor-zadachi-s-ispol-zovaniem-dfs-bfs/

#задачи
👍11👎1
Над чем вы работали на этой неделе, какие задачи героически решили и какие баги превратили в фичи?

Делимся всем, чем хочется похвастаться — текст, скриншоты кода и даже ссылочки на видео: https://tproger.ru/articles/chto-vy-delali-na-jetoj-nedele-post-ljogkogo-hvastovstva-za-20-24-fevralja/
💩6👍1