Zen of Python
20.1K subscribers
1.29K photos
179 videos
36 files
3.3K links
Полный Дзен Пайтона в одном канале

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
💊8🔥1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
«Покажите ваши навыки Python»

#кек
@zen_of_python
😁54
Кому из вас, уважаемые папищеки, сейчас тоже приходится гореть в аду дедлайнов? Давайте запилим свой кодерский профсоюз.

#кек
@zen_of_python
8
self: простейшее объяснение

Если вы только начинаете изучать Python, то почти наверняка уже столкнулись с self. В этом лонгриде мы разберемся, что это и с чем это едят.


self — это ссылка на объект

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


class Employee:
def set_salary(self, value):
self.salary = value

e = Employee()
e.set_salary(2000)
print(e.salary)


Когда вы создаёте объект, Python автоматически передаёт этот объект первым аргументом в метод. Принято называть его self, хотя технически вы можете использовать любое имя.

🔘 Создаётся класс Employee с методом set_salary. Этот метод принимает два аргумента:
— self — сам объект;
— value — значение, которое мы хотим установить.

🔘 Внутри метода выполняется присваивание:


self.salary = value


Это значит, что у конкретного объекта e создаётся атрибут salary, которому присваивается переданное значение.

🔘 Далее создаём объект:


e = Employee()


🔘 Устанавливаем зарплату:


e.set_salary(2000)


На самом деле Python преобразует этот вызов в:

Employee.set_salary(e, 2000)


🔘 Проверяем результат:


print(e.salary) # 2000



Почему без self не обойтись?

self позволяет объекту хранить собственные данные. Каждый экземпляр класса имеет свой набор атрибутов, и именно через self мы к ним обращаемся.

Например, если создать двух сотрудников:


e1 = Employee()
e2 = Employee()

e1.set_salary(2000)
e2.set_salary(3000)

print(e1.salary) # 2000
print(e2.salary) # 3000


У каждого объекта будет своя зарплата.

#инструмент
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Поговорим на Python. Разработка ПО для начинающих

Простое и дружелюбное введение в программирование для новичков. Вместе с героями книги вы пройдёте путь от идеи до готового приложения, шаг за шагом осваивая основы Python. Читатель научится не только писать код, но и мыслить как программист: планировать, отлаживать и находить решения. Книга построена на практике — вы создадите собственное онлайн-меню для кафе и постепенно поймёте, как устроена разработка. Это отличный старт для детей и студентов.

#книга #обучение
@zen_of_python
11🆒1
​​Bazel | Сборка и тестирование, как в FAANG

Опенсорсная версия внутреннего инструмента Google, которая делает процесс сборки эффективнее:
— Дает пересобрать только те участки кода, где были изменения (Incremental Builds);
— Позволяет сдруживать Python-код с другими ЯП;
— Дружит с CI / CD;
— Поддерживается на популярных ОС: Windows, Linux, macOS.

#инструмент
@zen_of_python
1🌭1
This media is not supported in your browser
VIEW IN TELEGRAM
memory_graph | Визуализация кода

Помощник в изучении и отладке, который визуализирует состояние программы: переменные, структуры данных и стек вызовов. Он позволит наглядно понять ключевые концепции — ссылки и изменяемость и проч.

С помощью графов можно визуализировать взаимосвязи между объектами, что они содержат и как меняются во времени. Удобен как для студентов и начинающих программистов, так и для тех, кто хочет глубже осознать, как Python работает «под капотом».

Модуль можно использовать даже в ноутбуках.

#инструмент
@zen_of_python
👏6
​​Из медтеха в Python-разработчики: как менторство помогло найти работу в IT

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

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

#обучение
@zen_of_python
11🍌1
Вопрос подписчика

Задает @StSav012:

«Есть ли у кого хороший мануал по lazy loading initialization? Чтобы и в runtime работало, и IDE не ругалась».

NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.

#обсуждение
@zen_of_python
1
ИИ впервые создал новые вирусы, которые убивают устойчивые к антибиотикам бактерии

Проблема растущей резистентности к антибиотикам становится всё более серьёзной — многие привычные лекарства уже не действуют. Учёные использовали языковую модель, обученную на миллионах фаговых геномов, чтобы создать варианты, которых не было в природе, и успешно протестировали их на устойчивых штаммах. И все это на Python. Некоторые из сгенерированных вирусов смогли преодолеть устойчивость всего за 1-5 поколений, в то время как оригинальный фаг без ИИ-адаптации не справлялся. Работа открывает путь к «кастомной фаготерапии» — лечению, адаптированному под конкретную бактериальную угрозу.

#факт
@zen_of_python
🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
skyvern | Скрейпинг с LLM + CV

Опираться при парсинге на DOM / xPath нынче не модно... Инструмент использует GPT и компьютерное зрение, чтобы «понимать» содержимое веб-страницы и выполнять нужные вам действия. Заодно и токенов сэкономите: ведь весь HTML-код страницы читать не требуется.

Доступен в РФ: да
Цена: бесплатно
@prog_tools
21
Python. Экспресс-курс

Книга для программистов, имеющих опыт с другими ЯП. В издании представлены актуальные возможности Python 3 с учетом последних 5 лет.

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

#книга
@zen_of_python
👍5🗿31
Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте.

#обсуждение
@zen_of_python
3
Смысл жизни по Монти Пайтону (1983)

Можно сколько угодно смотреть мемы про питонов, но язык назван в честь комиков Monty Python.

Если вам нужен фильм на выходные, и вы хотите знать, чем же так юмористы вдохновили создателя ЯП Гвидо ван Россума, посмотрите одну из их шедевральных полнометражек — «Смысл жизни по Монти Пайтону».

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

#факт
@zen_of_python
❤‍🔥3😱1
​​А во сколько лет вы узнали, что можно использовать любое количество пробелов для отступа, главное, чтобы они были одинаковыми в пределах одного блока? Код ниже не выдаст ошибку (даже если вызвать say_hi():

#кек
@zen_of_python
👍8
Всем питонягам бы такого отца. Батя админа вообще «ушел за хлебом»...

#кек
@zen_of_python
😁10💔9
Шпаргкалка SQL.pdf
1.2 MB
Шпаргалка SQL для собесов

Помимо базы еще полезное про:
— Вложенные запросы (CTE);
— JOIN'ы;
— Оконные функции;
— Подзапросы;
— SET;
— GROUP BY;
— LAG;
— CASE и проч.

#обучение
@zen_of_python
4👍2
Что такое JSON и зачем он нужен

JSON (JavaScript Object Notation) — текстовый формат для обмена данными, удобный для людей и машин. Он возник в экосистеме JavaScript, но стал язык-независимым стандартом для API, конфигураций и документных хранилищ. Формат простой: объекты (пар «ключ: значение») и массивы — это основные строительные блоки.

Почему Python-разработчику это важно:

🔘 JSON часто используется в web-API, логах, конфигурациях и при обмене данными между сервисами.
🔘 Python имеет встроенный модуль json, который делает сериализует (Python → JSON) и десериализует (JSON → Python).


Синтаксис JSON

🔘 Строки — в двойных кавычках ("...");
🔘 Логические значения — в нижнем регистре: true / false (в Python — True / False);
🔘 Отсутствующее значение — null (в Python → None);
🔘 Нельзя оставлять комментарии и нельзя ставить завершающие запятые после последнего элемента.

Валидный JSON:


{
"name": "Frieda",
"isDog": true,
"hobbies": ["eating", "sleeping"],
"age": 8,
"address": {"home": ["Berlin", "Germany"], "work": null}
}



Модуль json

Главные функции одноименного модуля стандартной библиотеки:

🔘 json.dumps(obj, **opts) — сериализует Python-объект в строку JSON;
🔘 json.dump(obj, fp, **opts) — сериализует и записывает в файл-объект;
🔘 json.loads(s) — парсит JSON-строку в Python-объект;
🔘 json.load(fp) — считывает JSON из файла и парсит.

Эти функции следуют стандартному отображению типов: словари → объекты, списки → массивы, строки → строки, числа → числа, True / Falsetrue / false, Nonenull.


import json

data = {"name": "Frieda", "age": 8, "is_dog": True}
s = json.dumps(data) # --> '{"name": "Frieda", "age": 8, "is_dog": true}'
obj = json.loads(s) # --> {'name': 'Frieda', 'age': 8, 'is_dog': True}



Полезные параметры dumps / dump

При сериализации полезны параметры:

🔘 indent — делает вывод читабельным (pretty print) (например, indent=2);
🔘 sort_keys=True — сортирует ключи объекта по алфавиту;
🔘 separators — позволяет контролировать символы между элементами (полезно для минификации);
🔘 ensure_ascii=False — по умолчанию json экранирует не-ASCII символы; если хотите сохранить UTF-8 в читаемом виде, ставьте False;
🔘 skipkeys=True — пропускает неподдерживаемые типы ключей вместо TypeError (использовать осторожно — вы можете потерять данные).


Маппинг типов

При загрузке JSON в Python выполняется обратное отображение типов:

* objectdict
* arraylist
* stringstr
* numberint / float
* true`/`falseTrue`/`False
* nullNone

JSON-ключи — всегда строки. Если у вас в исходном Python-словаре были числовые ключи (например {1: "a"}`), при сериализации они станут строками (`"1"`). После `json.loads() вы получите ключи как строки — Python не "угадает" исходный тип. Это частая ловушка при конвертации словарей ключами-числами.


Полезные утилиты и приёмы

🔘 python -m json.tool — встроенная утилита для форматирования/проверки JSON в терминале (можно использовать для prettify/minify);
🔘 Онлайн-валидаторы (например, JSONLint) и редакторы с подсветкой помогут быстро найти синтаксические ошибки (комментарии, лишние запятые и т. п.).


Подборка примеров

Читаем JSON из файла:

import json

with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f)


Записываем с красивым форматированием:

with open("data_pretty.json", "w", encoding="utf-8") as f:
json.dump(data, f, indent=2, sort_keys=True, ensure_ascii=False)


Сериализуем datetime:

from datetime import datetime
import json

def default(o):
if isinstance(o, datetime):
return o.isoformat()
raise TypeError

json.dumps({"now": datetime.utcnow()}, default=default)


Проверяем валидность JSON в CLI

python -m json.tool input.json > /dev/null
# код возврата 0 — валидный JSON


#основы
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
10