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

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Ну наконец-то в электромобили завезли поддержку питона.

Или это не то?
😁53🔥9👍3💩1😭1
​​​​Самые популярные вопросы на собеседовании: «В чем разница между методами экземпляра, класса и статическими методами в Python?»

Методы экземпляра: принимают параметр self и относятся к определенному экземпляру класса.

Статические методы: используют декоратор @staticmethod, не связаны с конкретным экземпляром и являются автономными (атрибуты класса или экземпляра не изменяются).

Проиллюстрируем разницу на вымышленном классе CoffeeShop:
class CoffeeShop:
specialty = 'espresso'

def __init__(self, coffee_price):
self.coffee_price = coffee_price

# instance method
def make_coffee(self):
print(f'Making {self.specialty} for ${self.coffee_price}')

# static method
@staticmethod
def check_weather():
print('Its sunny')

# class method
@classmethod
def change_specialty(cls, specialty):
cls.specialty = specialty
print(f'Specialty changed to {specialty}')

У класса CoffeeShop есть атрибут specialty (фирменный напиток), установленный по умолчанию в значение 'espresso'. Каждый экземпляр CoffeeShop инициализируется с атрибутом coffee_price. У него также три метода: метод экземпляра, статический метод и метод класса.

Давайте инициализируем экземпляр с атрибутом coffee_price, равным 5. Затем вызовем метод экземпляра make_coffee:
coffee_shop = CoffeeShop('5')
coffee_shop.make_coffee()
#=> Making espresso for $5

Теперь вызовем статический метод. Статические методы не могут изменять состояние класса или экземпляра, поэтому обычно используются для служебных функций, например, сложения двух чисел. Наши проверяют погоду. Говорят, что солнечно:
coffee_shop.check_weather()
#=> Its sunny

Теперь используем метод класса для изменения фирменного напитка (specialty), а затем сделаем кофе (make_coffee):
coffee_shop.change_specialty('drip coffee')
#=> Specialty changed to drip coffee

coffee_shop.make_coffee()
#=> Making drip coffee for $5

Обратите внимание, что make_coffee раньше делал эспрессо, а теперь заваривает капельную кофеварку (drip coffee).
👍31
👍4👎3
Каким будет результат выполнения кода выше?
Anonymous Quiz
3%
1 1
7%
1 0
46%
3 1
43%
3 0
👍15
Объяснение:

Значение varTwo передаётся в функцию func(). varOne[1, 2, 3] передаётся туда же как ещё одно значение

При этом внутри функции arr[0] = 0 изменяет значение по индексу [0] в списке. Отсюда следует, что varOne = [0,2,3]
👍8🤔4
​​​​Самые популярные вопросы на собеседовании: «В чём разница между func и func()?»

Это совсем несложный вопрос, но многих новичков он ставит в ступор. На самом деле вопрос нужен только для того, чтобы проверить ваше понимание, что все функции в Python также являются объектами:
def func():
print('Im a function')

func
#=> function __main__.func>

func()
#=> Im a function

func — это представляющий функцию объект, который можно назначить переменной или передать другой функции. А вот функция func() уже вызывает функцию и возвращает результат. Вот и всё :)

#собеседование
👍241
Большая подборка книг по Python от сообщества

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

https://github.com/pamoroso/free-python-books

#книги #подборка
👍11
Cоздаём свою канбан-доску на Django, DRF и Alpine.js

Наверняка вы уже работали с канбан-досками? Это сервисы типа Jira или Trello, они помогают здорово структурировать и мониторить рабочие процессы. А особенно они полезны, когда задачи состоят из кучи этапов, например, согласования, выполнения, ревью и продакшена.

А почему нам не сделать свою канбан-доску с блекджеком, так сказать, и всем прилегающим? Вот отличная статья, которая поможет разработать собственную канбан-доску и развернуть её на облачном сервере:

https://habr.com/ru/company/selectel/blog/721022/

#django #петпроект
👍10🤡4
5 полезных, но малоизвестных библиотек для Python

Многие из нас работали с Flask, NumPy, OpenCV и другими популярными библиотеками питона. Они хорошо поддерживаются, постоянно развиваются, у них большое коммьюнити и огромное количество гайдов.

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

И вот 5 самых интересных из них:
Funcy содержит более 100 полезных методов и декораторов, собранных в одной библиотеке.
JsonObject — удобная библиотека для быстрого преобразования json в объекты Python.
Pdir2 — отличная библиотека для замены работы со стандартным dir().
NetworkX — это очень большая и удобная библиотека для Python с множеством встроенных функций для работы с графами и их выводом.
You-get — удобный инструмент для скачивания видео, фото и аудио файлов с большинства популярных платформ.

А вот статья, в которой на примерах показали, как с ними работать и чем они могут быть полезны: https://habr.com/ru/company/ruvds/blog/721834/

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

#подборка #библиотека
👍131💩1
Forwarded from Типичный программист
OpenAI представила GPT-4 и расскажет о ней подробнее на презентации в 23:00 по мск

Как и обещали, разработчики Microsoft и OpenAI, в целом улучшили GPT-4 и внедрили мультимодальные модели. Теперь GPT-4 может взаимодействовать ещё и через изображения (пример, на 1 скриншоте), звуки и видео. А ещё она свободно общается на разных языках, гораздо лучше сдаёт экзамены и лучше пишет о сложных вопросах, а не только общих темах.

Рассказываем, что ещё нового в новой модели от OpenAI, как получить к ней доступ и где посмотреть презентацию: https://tproger.ru/articles/openai-predstavila-gpt-4-chto-novogo-i-kak-poprobovat-novinku/

#нейросети #openai #microsoft
👍18👎1
Первый тест фичи:
😁706👎1
Дайджест Python #5: как сделать свой Copilot и работать с данными в Pandas

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

В нём вы узнайте, как написать свой аналог GitHub Copilot без знаний об искусственном интеллекте, как работать с данными и памятью в Pandas и как написать нейросеть, которая сможет самостоятельно распознавать объекты.

#python #нейросети
5👎1🤮1
​​​​​Самые популярные вопросы на собеседовании: «Как работает функция map?»

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

Но у for есть несколько недостатков, которых можно избежать, используя map():

1. Поскольку map() написан на C и сильно оптимизирован, его внутренний подразумеваемый цикл более эффективен, чем обычный цикл for.

2. Второе преимущество использования map() — потребление памяти. С помощью for вам нужно сохранить весь список. А map() вы получаете элементы по запросу, и только один элемент находится в памяти в данный момент.

То есть map() полезен, когда вам нужно применить функцию преобразования к каждому элементу в коллекции или в массиве и преобразовать их в новый массив. Она возвращает объект (итератор), который перебирает значения, применяя функцию к каждому элементу. В случае необходимости объект можно преобразовать в список:

def add_three(x):
return x + 3
li = [1,2,3]
list(map(add_three, li))
#=> [4, 5, 6]

Например, здесь к каждому элементу в списке мы добавляем число 3.

#собеседование
👍41🔥1
Python для начинающих: дорожная карта в 2023 году

Это просто просто огромная крутая дорожная карта по изучению Python с нуля. Не смотрите, что партнёрский материал — это колаб Tproger и Skypro. Ребята просто честно помечают такие вещи, но годноты от этого меньше не становится.

В общем, смотрите, изучайте и сохраняйте, чтобы не потерять: https://tproger.ru/articles/python-roadmap-2023-ljn8jvxfj/

#шпаргалки
👍13
​​​​​​Самые популярные вопросы на собеседовании: «Объясните, как работает функция reduce»

reduce принимает функцию и последовательность — и проходит по этой последовательности. На каждой итерации в функцию передаются как текущий элемент, так и выходные данные предыдущего элемента. В конце концов, возвращается одно значение:

from functools import reduce
def add_three(x,y):
return x + y
li = [1,2,3,5]
reduce(add_three, li)
#=> 11

Возвращается 11, то есть сумма 1+2+3+5.

#собеседование
👍292
Генерируем 2D-мир с помощью клеточного автомата на Python

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

Простейшие клеточные автоматы используются в криптографии, моделировании физических процессов, поведения людей, в биологии, и в целой куче других важных и интересных штук. Да и вообще, это очень красиво и залипательно. И вот одно из необычных применений для клеточных автоматов — генерация карты для 2D-мира.

Хорошая статья, в которой можно попрактиковаться сразу и в геймдеве, и в теории клеточных автоматов, и в принципе закодировать что-нибудь интересное на питоне, вместо очередного калькулятора или просмотрщика погоды: https://habr.com/ru/post/721956/

#алгоритмы
👍175👎2
Декораторы в Python: понять и полюбить

Декораторы — это вам не «обычное» процедурное программирование, когда вы объявляете функции с блоками кода, и просто вызываете их. В Python всё куда интереснее!

Если вкратце, декоратор — это функция, которая позволяет обернуть другую функцию и расширить её функциональность без изменения её кода. Новички не очень любят декораторы и зря. А вот опытные Python-программисты знают, что это один из самых полезных инструментов в Python.

Давайте разбираться, что это за декораторы, как их использовать и как задействовать всю их магию: https://tproger.ru/translations/demystifying-decorators-in-python/
12👍5