Just Python
Закритий канал
🐍Простое изучение Python. Ссылка: @Portal_v_IT Сотрудничество: @oleginc
Показати більше9 696
Підписники
-624 години
-217 днів
-7630 днів
Архів дописів
9 696
Асинхронная замена requests
С помощью aiohttp мы можем не только составлять запросы, а также создавать HTTP-серверы.
Установка:
pip install aiohttp
Для быстрой работы DNS: pip install aiodns.
Помимо того, что модуль асинхронный, он ещё и поддерживает Middlewares, сигналы, подключаемую маршрутизацию и многое другое.
Документация
#theory // Just Python9 696
Получаем курс валют
Узнать цену биткоина в $ или получить стоимость доллара в рублях. Всё это можно сделать с помощью forex-python.
Установка:
pip install forex-python
На самом деле это просто клиент для этого сайта. Список доступных валют можно посмотреть тут. Также модуль может конвертировать одну валюту в другую.
Документация
Github
#theory // Just Python9 696
isinstance(object, classinfo)
Функция проверяет, относится ли объект к типу classinfo. Возможно это тот самый classinfo, а может дочерний тип.
Мы можем передать кортеж, тогда функция будет проверять, относится ли объект к одному из переданных типов.
Документация
#theory // Just Python
9 696
Proxy Checker
Чекер, разработанный на Python 3 для проверки прокси.
Получаемые данные:
- тип (HTTP, SOCKS4, SOCKS5)
- время ответа (в секундах)
- анонимность (анонимная или прозрачная)
- страна
- город
- код страны
#theory // Just Python
9 696
Приоритеты
Первым делом выполняется умножение, а только потом сложение. Но в Python всё несколько сложнее, ведь там операторов больше, чем в школьной математике.
В документации есть раздел по «значимости» каждого оператора (+x, @, ==, |, даже await).
#theory // Just Python
9 696
x.as_integer_ratio()
Метод предоставляет десятичную дробь в виде пары «числитель, знаменатель». То есть поделив a на b вы получите нужное число.
Но им лучше не пользоваться из-за стандарта IEEE 754 (ссылка на пост), а импортировать decimal (см. пример на фото).
#theory // Just Python
9 696
Всё просто
for i in range(10) говорит нам пройтись по списку и сохранить значение каждого элемента в i.
В нашем случае мы задаём значения кортежу (i, some_dict[i]) = (0, 'w'), а это то же, что и i = 0; some_dict[i] = 'w'.
Можно заметить выражение some_dict[i] = 'w', которое и меняет словарь.
#theory // Just Python9 696
Утиная типизация
В языках без явного указания типа (Python, JS) есть такое понятие как утиная типизация. Описывается так: «Если оно выглядит как утка и крякает как утка, то, наверное, это утка».
Утиный стиль программирования смотрит не на тип объекта, а на его атрибуты. Например, наличие iter() означает, что объект итерируемый.
#theory // Just Python
9 696
try/except
Эта конструкция используется для «ловли» ошибок и их обработки. Например, если пользователь неправильно ввёл число, попросить его сделать это заново.
try — здесь хранится код, который может выдать ошибку.
except Exception — если появилась ошибка, будет выполняться код из этого блока.
else — ошибок не было? Отлично, значит после try выполняем этот блок.
finally — выполняется всегда. Выдало ошибку, не выдало ошибку, функция использовала return — не имеет значение.
#theory // Just Python9 696
Pornhub заплатит $14 за просмотр каждого ролика, который длится больше 20 минут
А «Вкусно и точка» подарит сертификат на 3000р, если оставить положительный отзыв в телеграме и отметить их аккаунт в сториз.
Канал Лимон 🍋 находит СОТНИ бизнес-подработок, с которыми даже лодырь сможет получать лишние 60-70 тысяч.
– Зритель фильмов на Кинопоиске – 4.000р за 2 часа
– Автор отзывов на Google Maps – 100р/штука
– Помощник блогера на ютубе – $600/мес
Подпишитесь, если хотите работать на себя и получать за это неплохие деньги: https://t.me/+SCqmAWgAOf45ZTRi
9 696
Это спасёт вас от кучи багов
Просто знайте, что
round(x) округляет x до ближайшего чётного числа, а не так, как мы привыкли (3.5 => 4; 2.5 => 3).
Если вам нужно, чтобы 2.5 округлялось до трёх, то посмотрите в сторону decimal с настройкой ctx.rounding = ROUND_HALF_UP
Документация
#theory // Just Python9 696
Оператор with
Был придуман, чтобы заменить огромные try/except/finally при работе с файлами/соединениями на более простую конструкцию.
Он самостоятельно выполняет обязательные функции по завершению работы с классом после выполнения всех действий. Об этом в PEP 343.
Оператор использует
__enter__ в самом начале, например, для открытия файла. После выполнения всех операций (или если возникла ошибка), используется __exit__.
#theory // Just Python9 696
Фокус со срезом
Срезы позволяют нам получить подмножество элементов (исключение). Работают они с последовательностями (строки, списки, кортежи, range).
Но если мы возьмём подмножество из ничего (как в примере), то и получим ничего, но это и не приведёт к ошибке.
#theory // Just Python
9 696
Хороший Python
В первом тесте Python получает список, выполняет функцию join (объединяет строки в последовательности) и создаёт новую строку.
Но вот во втором случае Python сразу понимает что
''.join(a.split()) вернёт a, поэтому не выполняет ни split, ни join, а подставляет ту же строку.
#theory // Just Python9 696
Интерпретатор умный
Перед запуском он проходится по файлу и смотрит на первые значения переменных (
a = "string"), которые потом подставляет на месте повторений (если это неизменяемые типы данных).
Именно поэтому, когда вы выполняете код в интерактивном интерпретаторе и как файл, результат может отличаться.
#theory // Just Python9 696
IEEE 754
Это стандарт, который говорит как расставить нолики и единички, чтобы получить float. Он позволяет нам писать 0.3, но из-за него же 0.1 + 0.2 != 0.3.
На эту тему тут был ролик, а я пока расскажу про странные моменты, которые связаны с этим стандартом.
#theory // Just Python
9 696
Строки на несколько строк
Бывают ситуации, когда строку лучше разделить, чтобы она легче читалась, но при этом сохранить её содержимое в полном порядке. В таком случае у нас есть три варианта:
Использовать косую черту (/). Тогда мы переносим выражение на новую строку и ни о чем не заботимся.
Использовать скобки. Смотрите лучше пример. Никаких + использовать не надо, строки сами объединяться.
Использовать тройные кавычки. Внутри тройных кавычек все останется именно таким, как оно есть.
#theory // Just Python
9 696
Всего за 5 минут определите подходящую вам IT-профессию.
Онлайн-школа Skillfactory разработала уникальный профориентационный тест из 18 вопросов. Ответив на них, узнаете наиболее подходящую вам специальность.
Работайте в российских или зарубежных компаниях, в офисе или удаленно. Для айтишников — сниженная ставка по ипотеке, высокая зарплата, комфортные условия и гибкий график.
Переходите по специальной ссылке, чтобы пройти тест, получить карьерную консультацию и мини-курс для выбора профессии в IT или дизайне
Реклама. Информация о рекламодателе по ссылкам в посте.
9 696
Любопытно
round(x) округляет значения до ближайшего чётного числа (в документации так и написано). В википедии можно даже найти такое правило.
Если вам нужно, чтобы 2.5 округлялось до трёх, то посмотрите в сторону decimal с настройкой ctx.rounding = ROUND_HALF_UP. Подробнее.
#theory // Just Python9 696
Создаём интерфейс командной строки
Если вы пишите консольное приложение, то обязаны позаботиться о том, чтобы пользователям было удобно им пользоваться. CLI вам поможет создать fire.
Установка:
pip install fire
Модуль придерживается ООПшного стиля, что сильно упрощает интеграцию к себе в проект.
Также он предоставляет доступ ко всем атрибутам, которые переданы в него. Об этом и не только подробнее в документации.
#theory // Just Python