Разъяснивший Python
8.47K subscribers
2.25K photos
37 videos
30 files
2.08K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Про упаковку и распаковку

Распаковка задаёт переменным значения итерируемого объекта (список, кортеж, строка, генератор).

Упаковка позволяет собрать несколько значений в один список и после работать с ними.

Эти фишки делают код более красивым и элегантным, но стоит знать меру.

#объяснение
💻Nextcord

Современная, простая в использовании, многофункциональная и готовая к асинхронизации Python-библиотека представляющая из себя API для Discord.

С помощью нее можно создать множество Discord-ботов имитирующих реального пользователя (и не только)

https://github.com/nextcord/nextcord
Хороший Python

В первом тесте Python получает список, выполняет функцию join (объединяет строки в последовательности) и создаёт новую строку.

Но вот во втором случае Python сразу понимает что ''.join(a.split()) вернёт a, поэтому не выполняет ни split, ни join, а подставляет ту же строку.

#объяснение
Изменение возраста с помощью модели регрессии

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

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

Ссылка на гитхаб
Python оптимизировал создание строки

С помощью dis мы можем посмотреть байт-код программы.

Здесь мы видим, что 'hello' и 'hell' + 'o' ничем не отличается друг от друга, а значит Python поступил по умному и оптимизировал код.

#объяснение
Кэширование строк

Стоит отметить, что это очень сильно зависит от интерпретатора Python. Также правила могут измениться в будущем.

Короткие строки в Python кэшируются интерпретатором при инициализации. Это используется для сохранения памяти.

Если вы хотите поэкспериментировать, можете установить Python 2.7 и поиграться с функцией intern(), которая принудительно кэширует строку.

#объяснение
Оператор with

Был придуман, чтобы заменить огромные try/except/finally при работе с файлами/соединениями на более простую конструкцию.

Он самостоятельно выполняет обязательные функции по завершению работы с классом после выполнения всех действий. Об этом в PEP 343.

Оператор использует __enter__ в самом начале, например, для открытия файла. После выполнения всех операций (или если возникла ошибка), используется __exit__.

#теория
try/except

Эта конструкция используется для «ловли» ошибок и их обработки. Например, если пользователь неправильно ввёл число, попросить его сделать это заново.

try — здесь хранится код, который может выдать ошибку.

except Exception — если появилась ошибка, будет выполняться код из этого блока.

else — ошибок не было? Отлично, значит после try выполняем этот блок.

finally — выполняется всегда. Выдало ошибку, не выдало ошибку, функция использовала return — не имеет значение.

#объяснение
Разница между is и ==

Каждый объект хранится в памяти и имеет свой номер, по которому можно его найти. Этот номер можно получить с помощью функции id().

is занимается сравниванием этих самых адресов. В то время как == вызывает функцию __eq__ и предназначения для сравнения значений класса.

Представьте куб, а потом ещё один такой же. Они одинаковые, но это два абсолютно разных объекта. Также и в программировании.

#объяснение
📓 Практическое введение в решение дифференциальных уравнений в Python.

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

• После теоретического вывода возникающих в модели дифференциальных уравнений максимально детально описывается процесс формализации модели и решения соответствующих дифференциальных уравнений с использованием библиотеки SymPy. Особое внимание при этом уделяется анализу и визуализации найденных решений с помощью библиотеки Matplotlib. Изложение материала сопровождается большим числом иллюстраций и упражнений.

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

🟢 Читать/скачать книгу

#RU
__getattribute__ и __getattr__

Это особые методы, которые вызываются при попытке получить какой-либо атрибут класса. Например, foo.var вызовет __getattribute__, а после, возможно __getattr__.

Отличие между методами только в том, что __getattribute__ используется всегда, а __getattr__ только если атрибут не найден.

#объяснение
📌 Это спасёт вас от кучи багов

Просто знайте, что round(x) округляет x до ближайшего чётного числа, а не так, как мы привыкли (3.5 => 4; 2.5 => 3).

Если вам нужно, чтобы 2.5 округлялось до трёх, то посмотрите в сторону decimal с настройкой ctx.rounding = ROUND_HALF_UP

📕 Документация

#урок
Я утка

В языках без явного указания типа (Python, JS) есть такое понятие как утиная типизация. Описывается так: «Если оно выглядит как утка и крякает как утка, то, наверное, это утка».

Утиный стиль программирования смотрит не на тип объекта, а на его атрибуты. Например, наличие iter() означает, что объект итерируемый.

#теория
Булевые операции

x or y — если x правда (True), возвращает x, иначе y.

x and y — если x правда (True), возвращает y, иначе x.

#объяснение
Django-приложение для ведения личного дневника

В этом руководстве мы разработаем и создадим личный дневник, в котором пользователи смогут:

▪️добавлять новые записи;
▪️просматривать их;
▪️редактировать и удалять конкретные записи.

https://nuancesprog.ru/p/14805/
Шпаргалка по NumPy для Data Science
Всё просто

for i in range(10) говорит нам пройтись по списку и сохранить значение каждого элемента в i.

В нашем случае мы задаём значения кортежу (i, some_dict[i]) = (0, 'w'), а это то же, что и i = 0; some_dict[i] = 'w'.

Можно заметить выражение some_dict[i] = 'w', которое и меняет словарь.

#объяснение
⚙️Программы на Python

▪️Голосовой ассистент на Python - Смотреть
▪️Парсер статей на Python - Смотреть
▪️Чат-бот на Python + Dialogflow - Смотреть
▪️Голосовой ассистент на Python - Смотреть
▪️Голосовой ассистент на Python - добавляем навыки - Смотреть
▪️Голосовой ассистент - разбор кода - Смотреть
▪️Работаем с веб камерой на Python - Смотреть
▪️Работаем с FTP на Python - Смотреть
▪️Создаём Telegram бота на Python - Смотреть
▪️Запуск Telegram бота на сервере - Смотреть
x.as_integer_ratio()

Метод предоставляет десятичную дробь в виде пары «числитель, знаменатель». То есть поделив a на b вы получите нужное число.

Но им лучше не пользоваться из-за стандарта IEEE 754 (ссылка на пост), а импортировать decimal (см. пример на фото).

#объяснение
📓 Информатика: разработка программ на языке программирования Python.

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

🟢 Читать/скачать книгу

#RU