Разъяснивший Python
8.18K subscribers
2.43K photos
40 videos
30 files
2.28K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
__getattribute__ и __getattr__

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

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

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

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

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

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

#урок
👍15🔥4🤯31
Я утка

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

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

#теория
👍32😁15
Булевые операции

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

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

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

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

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

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

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

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

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

#объяснение
👍20❤‍🔥31
⚙️Программы на Python

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

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

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

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

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

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

#RU
👍3😁2
Приоритеты

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

В документации есть раздел по «значимости» каждого оператора (+x, @, ==, |, даже await).

#объяснение
👍10
👨🏻‍💻 Парсинг (скрапинг) сайтов на Python.

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

Быстрый парсинг данных с сайта несколькими процессами с экспортом в csv;
Парсим Avito при помощи Python;
Парсинг Avito при помощи Python Часть 2;
Приемы работы с библиотекой BeautifulSoup;
Как использовать прокси и менять User-Agent;
Анализ "ненормальных" сайтов;
Как скачивать картинки и другие файлы;
Работа с ошибками.

📌 В дополнение: Почему стоит научиться «парсить» сайты, или как написать свой первый парсер на Python.

#Парсинг #Видео
👍9👎3
Proxy Checker

Чекер, разработанный на Python 3 для проверки прокси.

Получаемые данные:
▪️тип (HTTP, SOCKS4, SOCKS5)
▪️время ответа (в секундах)
▪️анонимность (анонимная или прозрачная)
▪️страна
▪️город
▪️код страны
🤯10👍71
isinstance(object, classinfo)

Функция проверяет, относится ли объект к типу classinfo. Возможно это тот самый classinfo, а может дочерний тип.

Мы можем передать кортеж, тогда функция будет проверять, относится ли объект к одному из переданных типов.

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

#объяснение
👍15🤬32
📌 Получаем курс валют

Узнать цену биткоина в $ или получить стоимость доллара в рублях. Всё это можно сделать с помощью forex-python.

Установка: pip install forex-python

На самом деле это просто клиент для этого сайта. Список доступных валют можно посмотреть тут. Также модуль может конвертировать одну валюту в другую.

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

#урок
4
Что такое __name__ ?

Каждый раз, когда мы импортируем код, он весь выполняется точно так же, словно мы его просто запустили. Чтобы избежать странного поведения, как на картинке, стоит использовать __name__.

Переменная получает значение '__main__', если программу запустили напрямую (python file.py). Если же файл импортировали как модуль, он получает своё название.

#теория
🔥9👍8🤔2🥰1
🕵️ Пишем кейлоггер на Python для Windows

Руководство по созданию кейлоггера на Python, который записывает нажатия клавиш с клавиатуры и отправляет их по электронной почте или сохраняет в файл журнала.

https://proglib.io/p/pishem-keylogger-na-python-dlya-windows-za-5-minut-2022-05-05
👍4🔥2
Ещё не надоело работать с os.path?

С Python 3.4 есть отличная альтернатива — pathlib. Он упрощает работу с путями и добавляет новые функции.

Помимо того, что вы теперь можете удобно составлять пути, так ещё и работать с ними (rename(), rmdir(), etc).

К тому же пути нормально работают на Windows и Linux. А если ваш код всё ещё использует os, то pathlib совместим с этим модулем.

#урок
👍81
Так что же такое NaN

Not a number
(не число) — состояние числа с плавающей запятой, при котором машине не удалось посчитать какое-то выражение.

Компьютер не в силах поделить 0 на 0 или узнать asin(2), поэтому возвращает NaN.

Его особенностью среди других чисел является то, что оно не равно самому себе.

#объяснение
27👍7👎1