📌 Делаем вычисления более точными
Поскольку люди не могут перевести некоторые числа с плавающей запятой в двоичный вид, мы получаем это:
Исправить проблему можно с помощью decimal. Модуль умеет быстро и правильно округлять арифметические операции с плавающей запятой.
И это всё тот же float. То есть вы можете складывать значения, вычитать, умножать, делить, сравнивать, и так далее.
#урок
Поскольку люди не могут перевести некоторые числа с плавающей запятой в двоичный вид, мы получаем это:
0.1 + 0.2 = 0.30000000000000004
.Исправить проблему можно с помощью decimal. Модуль умеет быстро и правильно округлять арифметические операции с плавающей запятой.
И это всё тот же float. То есть вы можете складывать значения, вычитать, умножать, делить, сравнивать, и так далее.
#урок
📌 Лучше чем Pandas & NumPy
agate используется для анализа данных, их обработки и вывода (в виде графиков, например). Раньше библиотеку знали как journalism.
Установка:
#урок
agate используется для анализа данных, их обработки и вывода (в виде графиков, например). Раньше библиотеку знали как journalism.
Установка:
pip install agate
Позиционирует она себя как упрощённая альтернатива NumPy и Pandas. Вы выполняете те же задачи, но при этом пишите меньше и код становится в разы понятнее.#урок
📌 Модуль inspect
С ним вы окунётесь в глубины Python и познаете принципы его работы... Почти. На самом деле он просто вытаскивает данные из объекта или делает какие-то проверки.
📕 Документация
#урок
С ним вы окунётесь в глубины Python и познаете принципы его работы... Почти. На самом деле он просто вытаскивает данные из объекта или делает какие-то проверки.
signature(obj)
— то, как у функции определены аргументы. Используйте, если не понимаете, почему float(x='1')
выдаёт ошибку в Python 3.9.inspect.getmro(class)
— если нужно узнать иерархию классов.📕 Документация
#урок
📌
#урок
__getattr__
и __getattribute__
__getattribute__
вызывается каждый раз, когда мы пытаемся получить атрибут, даже если это произошло внутри класса с помощью self.__getattr__
вызывается только в том случае, если атрибут не был найден. Его можно спокойно переопределять.#урок
📌 Метод str.split(sep)
Он разделяет строку по sep, но у него есть свои особенности.
И первое, это если sep не указан, то есть None: тогда несколько пробелов рассматриваются как один разделитель и, к тому же, в результате не будет пустых строк в начале и в конце.
Если sep передан, то разделители не группируются, а значит на месте повторов образуется
📕 Документация
#урок
Он разделяет строку по sep, но у него есть свои особенности.
И первое, это если sep не указан, то есть None: тогда несколько пробелов рассматриваются как один разделитель и, к тому же, в результате не будет пустых строк в начале и в конце.
Если sep передан, то разделители не группируются, а значит на месте повторов образуется
''
. Также, разделение пустой строки всегда вернёт ['']
.📕 Документация
#урок
📌 Это спасёт вас от кучи багов
Просто знайте, что
Если вам нужно, чтобы 2.5 округлялось до трёх, то посмотрите в сторону decimal с настройкой
#урок
Просто знайте, что
round(x)
округляет x до ближайшего чётного числа, а не так, как мы привыкли (3.5 => 4
; 2.5 => 3
).Если вам нужно, чтобы 2.5 округлялось до трёх, то посмотрите в сторону decimal с настройкой
ctx.rounding = ROUND_HALF_UP
📕 Документация#урок
📌 Его надо знать обязательно!
Речь пойдёт про collections — встроенный модуль, который сильно упростит вашу жизнь.
Он посчитает кол-во элементов (Counter), подставит значение на место несуществующего ключа (defaultdict) и многое другое.
📕 Документация
#урок
Речь пойдёт про collections — встроенный модуль, который сильно упростит вашу жизнь.
Он посчитает кол-во элементов (Counter), подставит значение на место несуществующего ключа (defaultdict) и многое другое.
📕 Документация
#урок
📌 Модуль heapq
Нас интересуют только две функции:
В большинстве случаев функции быстрее чем
📕 Документация
#урок
Нас интересуют только две функции:
nlargest()
и nsmallest()
. Они позволяют получить n самых больших/маленьких значений в iterable.В большинстве случаев функции быстрее чем
sorted(iterable)[:n]
. Их использование можно заметить в Counter.most_common()
.📕 Документация
#урок
👨🏻💻 Парсинг (скрапинг) сайтов на Python.
• Парсинг — процесс сбора данных с последующей их обработкой и анализом. К этому способу прибегают, когда предстоит обработать большой массив информации, с которым сложно справиться вручную.
• Быстрый парсинг данных с сайта несколькими процессами с экспортом в csv;
• Парсим Avito при помощи Python;
• Парсинг Avito при помощи Python Часть 2;
• Приемы работы с библиотекой BeautifulSoup;
• Как использовать прокси и менять User-Agent;
• Анализ "ненормальных" сайтов;
• Как скачивать картинки и другие файлы;
• Работа с ошибками.
📌 В дополнение: Почему стоит научиться «парсить» сайты, или как написать свой первый парсер на Python.
#Парсинг #Видео
• Парсинг — процесс сбора данных с последующей их обработкой и анализом. К этому способу прибегают, когда предстоит обработать большой массив информации, с которым сложно справиться вручную.
• Быстрый парсинг данных с сайта несколькими процессами с экспортом в csv;
• Парсим Avito при помощи Python;
• Парсинг Avito при помощи Python Часть 2;
• Приемы работы с библиотекой BeautifulSoup;
• Как использовать прокси и менять User-Agent;
• Анализ "ненормальных" сайтов;
• Как скачивать картинки и другие файлы;
• Работа с ошибками.
📌 В дополнение: Почему стоит научиться «парсить» сайты, или как написать свой первый парсер на Python.
#Парсинг #Видео
📌 Что такое NaN
Not a Number (не число) — состояние float, при котором устройство не смогло посчитать какое-то выражение.
Компьютер не в силах (как и мы) поделить 0 на 0 или узнать asin(2), поэтому возвращает NaN.
Его особенностью среди других чисел является то, что оно не равно самому себе.
#урок
Not a Number (не число) — состояние float, при котором устройство не смогло посчитать какое-то выражение.
Компьютер не в силах (как и мы) поделить 0 на 0 или узнать asin(2), поэтому возвращает NaN.
Его особенностью среди других чисел является то, что оно не равно самому себе.
#урок
👨🏻💻 Python Casts.
• Что вам нужно знать о Pip.
• Переменные окружения. Использование.
• Что означает *args, **kwargs.
• if name == 'main': что это значит.
• Генераторы списков (List comprehension).
• Декораторы.
• 5 приемов, о которых вы могли не знать.
• Замыкания.
• Что такое try - except.
• Что такое yield.
• Как работает функция map().
• Как работает функция filter().
• Else у циклов For и While.
• Кое-что о функциях, передаче аргументов и map().
#Видео #RU
• Что вам нужно знать о Pip.
• Переменные окружения. Использование.
• Что означает *args, **kwargs.
• if name == 'main': что это значит.
• Генераторы списков (List comprehension).
• Декораторы.
• 5 приемов, о которых вы могли не знать.
• Замыкания.
• Что такое try - except.
• Что такое yield.
• Как работает функция map().
• Как работает функция filter().
• Else у циклов For и While.
• Кое-что о функциях, передаче аргументов и map().
#Видео #RU
📌 Утиная типизация
«Если оно выглядит как утка и крякает как утка, то, наверное, это утка» — примерно так определяют объекты динамические языки программирования (Python, JS).
То есть мы смотрим не на объект, а на его атрибуты. И если там, к примеру, есть
📕 Документация
#урок
«Если оно выглядит как утка и крякает как утка, то, наверное, это утка» — примерно так определяют объекты динамические языки программирования (Python, JS).
То есть мы смотрим не на объект, а на его атрибуты. И если там, к примеру, есть
__iter__()
, то объект считается итерируемым.📕 Документация
#урок
👨🏻💻 Уроки Flask. Создаем блог.
• Уроки #Flask - фреймворка на Python для создания Web-приложений. В качестве учебного примера создаем блог.
• "Демка проекта";
• Подготовка к работе;
• Cоздание приложения, HTML;
• Наследование шаблонов;
• Blueprints;
• Cоздание постов (модели);
• Миграции, теги, связь тегов и постов;
• Поиск и форма создания поста;
• Добавление постраничной навигации;
• Форма редактирования постов и админка;
• Авторизация админа, базовая кастомизация админки;
• Страница 404, кастомный CSS.
#Видео #RU #Flask
• Уроки #Flask - фреймворка на Python для создания Web-приложений. В качестве учебного примера создаем блог.
• "Демка проекта";
• Подготовка к работе;
• Cоздание приложения, HTML;
• Наследование шаблонов;
• Blueprints;
• Cоздание постов (модели);
• Миграции, теги, связь тегов и постов;
• Поиск и форма создания поста;
• Добавление постраничной навигации;
• Форма редактирования постов и админка;
• Авторизация админа, базовая кастомизация админки;
• Страница 404, кастомный CSS.
#Видео #RU #Flask
📌 Метод
#урок
call
Позволяет вызывать класс точно так же, как и функцию. То есть вы можете написать так: AddClass()(1)(2).
В основном используется для создания декораторов, которым надо передать какое-либо значение.#урок
📌 Python Roadmap
Информации очень много и «потеряться» в ней довольно легко. Эта карта поможет вам систематизировать знания и изучать всё в порядке возрастания сложности.
#roadmap
Информации очень много и «потеряться» в ней довольно легко. Эта карта поможет вам систематизировать знания и изучать всё в порядке возрастания сложности.
#roadmap
👨💻 Арифметические операции.
• На базовом уровне компьютеры оперируют только числами. Даже в прикладных программах на высокоуровневых языках внутри много чисел и операций над ними. Но для старта достаточно знать обычную арифметику — с нее и начнем.
• Например, для сложения двух чисел в математике мы пишем:
• Строчка кода
• Например, если создавать интернет-магазин, недостаточно просить интерпретатор посчитать стоимость товаров в корзине. Нужно просить посчитать стоимость и показать цену покупателю.
• Нам нужно попросить интерпретатор сложить
#урок
• На базовом уровне компьютеры оперируют только числами. Даже в прикладных программах на высокоуровневых языках внутри много чисел и операций над ними. Но для старта достаточно знать обычную арифметику — с нее и начнем.
• Например, для сложения двух чисел в математике мы пишем:
3 + 4
В программировании — то же самое. Арифметика в программировании практически не отличается от школьной арифметики.• Строчка кода
3 + 4
заставит интерпретатор сложить числа и узнать результат. Эта программа будет работать, но в ней нет смысла. По сути, мы не даем команду интерпретатору, мы просто говорим ему: «смотри, сумма трех и четырех». В реальной работе недостаточно сообщать интерпретатору о математическом выражении.• Например, если создавать интернет-магазин, недостаточно просить интерпретатор посчитать стоимость товаров в корзине. Нужно просить посчитать стоимость и показать цену покупателю.
• Нам нужно попросить интерпретатор сложить
3 + 4
и дать команду сделать что-то с результатом. Например, вывести его на экран:# Сначала вычисляется сумма,• После запуска на экране появится результат:
# затем она передается в функцию печати
print(3 + 4)
7
• Кроме сложения доступны следующие операции:- — вычитание• Теперь выведем на экран результат деления, а потом результат возведения в степень:
* — умножение
** — возведение в степень
/ — деление
// — целочисленное деление
% — остаток от деления
print(8 / 2) # => 4.0 (При делении двух чисел получается тип данных float)• Первая инструкция выведет на экран
print(3 ** 2) # => 9
4
(потому что 8 / 2 равно 4), а вторая инструкция выведет на экран 9
(потому что 3 во второй степени равно 9).#урок
🔥 PyTorch.
• github.com/pytorch/pytorch — тензоры и динамические нейронные сети в Python с сильным ускорением графического процессора.
➖➖➖➖➖➖➖➖
• PyTorch is a Python package that provides two high-level features:
• Tensor computation (like NumPy) with strong GPU acceleration;
• Deep neural networks built on a tape-based autograd system;
• You can reuse your favorite Python packages such as NumPy, SciPy, and Cython to extend PyTorch when needed.
#GitHub
• github.com/pytorch/pytorch — тензоры и динамические нейронные сети в Python с сильным ускорением графического процессора.
➖➖➖➖➖➖➖➖
• PyTorch is a Python package that provides two high-level features:
• Tensor computation (like NumPy) with strong GPU acceleration;
• Deep neural networks built on a tape-based autograd system;
• You can reuse your favorite Python packages such as NumPy, SciPy, and Cython to extend PyTorch when needed.
#GitHub
📌 Тесты в документации
Другие программисты понимают, что делает ваш код, а вы его тестируете. Не прелесть ли?
Реализуется с помощью модуля doctest. Он ищет текст, который выглядит как интерактивный сеанс Python (>>>, ... и подобные символы).
Можно запускать тесты с
📕 Документация
#урок
Другие программисты понимают, что делает ваш код, а вы его тестируете. Не прелесть ли?
Реализуется с помощью модуля doctest. Он ищет текст, который выглядит как интерактивный сеанс Python (>>>, ... и подобные символы).
Можно запускать тесты с
doctest.testmod()
или введя в терминале: python -m doctest -v example.py
.📕 Документация
#урок
📓 Автоматизация предприятия с помощью Python
• В данной книге приводятся реальные примеры того, как читатели могут внедрять автоматизацию бизнес-процессов на своих предприятиях, а также решать обычные офисные задачи с помощью языка Python и его библиотек реализации элементов ИИ.
• Эта книга научит вас создавать, читать, изменять и извлекать данные из документов Excel, Word и PDF с помощью программирования на языке Python. Также Вы узнаете, как можно в автоматическом режиме извлекать данные с веб-сайтов, PDF-документов, работать с электронной почтой Gmail и Outlook, а также мессенжером WhatsApp. Отдельный раздел книги будет интересен тем, кто желает автоматизировать с помощью языка Python извлечение текста из изображений и отсканированных документов.
#RU
• В данной книге приводятся реальные примеры того, как читатели могут внедрять автоматизацию бизнес-процессов на своих предприятиях, а также решать обычные офисные задачи с помощью языка Python и его библиотек реализации элементов ИИ.
• Эта книга научит вас создавать, читать, изменять и извлекать данные из документов Excel, Word и PDF с помощью программирования на языке Python. Также Вы узнаете, как можно в автоматическом режиме извлекать данные с веб-сайтов, PDF-документов, работать с электронной почтой Gmail и Outlook, а также мессенжером WhatsApp. Отдельный раздел книги будет интересен тем, кто желает автоматизировать с помощью языка Python извлечение текста из изображений и отсканированных документов.
#RU
📌 Знаете, как работает словарь?
Лучше не знать. Начнём с того, что он принимает только хешируемые объекты, то есть те, у которых есть метод
После их запихивают в хеш-таблицу (есть на эту тему классная статья). Если просто, то это «гардеробная». Вы даёте номерок и вам выдают вещь.
#урок
Лучше не знать. Начнём с того, что он принимает только хешируемые объекты, то есть те, у которых есть метод
__hash__
. Это str, tuple, frozenset и другие неизменяемые объекты.После их запихивают в хеш-таблицу (есть на эту тему классная статья). Если просто, то это «гардеробная». Вы даёте номерок и вам выдают вещь.
#урок