Программы для программирования
20 subscribers
849 photos
1 video
26 files
41 links
Download Telegram
Forwarded from Python Education
*args и **kwargs

Иногда нельзя предсказать, сколько аргументов получит функция. Чтобы обработать их, используются специальные конструкции args и kwargs.

На самом деле, названия переменных – args, kwargs – это просто соглашение. Важны здесь только звездочки. Они обозначают сборку аргументов в коллекцию (список или словарь). Одна звездочка предназначена для обычных аргументов, две – для именованных.

Можно заменить
args на vars, а kwargs на options или другое слово. Программа будет работать так, как ожидается. Однако, другие разработчики могут вас не понять.

Конструкции
args и kwargs можно использовать как самостоятельно, так и в комбинации с любым количеством обычных аргументов. Например, в коде выше первый параметр farg обрабатывается отдельно, а все остальные собираются в коллекцию.
Forwarded from Python Education
Асинхронность

Асинхронность – еще один способ выполнения нескольких задач сразу. Она предлагает решать проблему с помощью функций обратного вызова (callback).

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

В Python есть несколько асинхронных библиотек. Самые популярные из них – стандартная AsyncIO и Tornado.

В последних версиях языка появились новые синтаксические конструкции async и await.
Forwarded from Python Education
Разбиение строки в список

Вы можете разбить строку на список строк. В этом случае разбиение происходит по символу пробела

Чтобы разделить по пустому месту, не нужно передавать в split никаких аргументов – используйте mystring.split().

Split также имеет второй параметр, называемый maxsplit, который определяет максимальное количество разбиений. По умолчанию он равен -1 (без ограничений). Второй пример, с ограничением разбиения на 1
Forwarded from Python Education
Отладка

Python-код можно и нужно отлаживать. Для этого в языке есть специальный интерактивный дебаггер pdb.
Forwarded from Python Education
Query JSON

JMESpath – это язык запросов для JSON, который позволяет получать необходимые данные из документа или словаря JSON. Библиотека доступна как для Python, так и для других ЯП, что расширяет ее возможности.
Forwarded from Python Education
Четыре типа кавычек

В некоторых языках программирования одинарные и двойные кавычки предназначены для разных вещей. Python позволяет использовать оба варианта (но строка должна начинаться и заканчиваться одним и тем же типом кавычек). В Python также есть еще два типа кавычек: ''' (тройные одинарные) и """ (тройные двойные). Таким образом, можно использовать несколько уровней кавычек, прежде чем придется заботиться об их экранировании.

Например, этот код правильный:

print """Я бы не хотел никогда услышать, как он говорит: '''Она сказала: "Он сказал: 'Дай мне двести рублей'"'''"""
Forwarded from Python Education
Правдивость различных объектов

В отличие от некоторых языков программирования, в Python объект считается false, только если он пуст. Это значит, что не нужно проверять длину строки, кортежа или словаря — достаточно проверить его как логическое выражение.

Легко предсказать, что 0 — тоже false, а остальные числа — true.

Например, следующие выражения эквивалентны. В данном случае my_object — строка, но здесь мог оказаться другой тип (с соответствующими изменениями условий блока if).

Итак, нет необходимости проверять длину объекта, если вас интересует только, пуст он или нет.
Forwarded from Python Education
Делаем HTTP запросы

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

Устанавливается requests стандартным путем через пакетный менеджер pip. Запросы GET, POST, PUT и DELETE делаются интуитивно понятно. Атрибуты у объекта Response позволяют получить всю информацию об ответе от сервера.

Модуль идеально подходит как для работы со внешними API веб-сервисов, так и для получения HTML кода веб-страниц.

#requests
Forwarded from Python Education
Продвинутые кортежи

С помощью кортежей в Pyhton реализовано множественное присваивание.

Кортежи довольно полезный инструмент. Благодаря им в Python возможно поменять местами значения переменных самым простым способом.

a,b = b,a

Для расширенной распаковки кортежа в переменные указываем * перед переменной - в нее распаковывается часть кортежа как список.
Forwarded from Python Education
Множества

Множество - группа случайных, не повторяющихся элементов. Использует тот же литерал, что и словарь, но пустое множество нельзя создать используя литерал. Поддерживают операции над множествами.

Функция set() — формирует множество. При создании удаляются все повторяющиеся элементы.
Функция frozenset() — формирует неизменяемое множество.
Forwarded from Python Education
Как работает all и any?

Функция all() возвращает True если список пустой или все его элементы истинны.

Функция any() возвращает True если хотя бы один из элементов списка истинный.

Функционал довольно простой и примитивный, но в скольких ситуациях может облегчить жизнь! В купе с for и другими конструкциями очень помогает сократить некоторые громоздкие функции, а также быстро проверить список на различные параметры.
Forwarded from Python Education
Работа с таблицами csv

В Python есть встроенная библиотека для работы с таблицами. Например, при парсинге сайта удобно оформлять результаты в таблицу, которую можно наглядно посмотреть в Excele или другом приложении. В примере представлено чтение из csv файла.
Forwarded from Python Education
Печать строки N раз

Этот пример может печатать любую строку n раз без использования циклов Python.
Forwarded from Python Education
Обработка строки

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

Перечислим наиболее полезные методы:

capitalize() - первая буква большая, остальные маленькие
strip() - удаление пробелов в начале и конце
center(int, chr='') - отцентрирует текст, int - нужное кол-во символов в строке, а chr - символ для добавления в начало и конец
swapcase() - заглавные буквы в прописные, маленькие в большие
lower() - преобразует к нижнему регистру
upper() - преобразует к верхнему регистру

При написании нейронок и ботов обязательно приводите все к нижнему регистру с помощью lower(). При написании ботов часто использую center(), для красивого вывода.
Forwarded from Python Education
Выключение компьютера

Если надоело выключать компьютер привычным способом, то можно создать программу на Питон. При чём для её реализации вам потребуется лишь использовать встроенную библиотеку os.
Forwarded from Python Education
Продвинутая итерация

Итерация с помощью функции for может быть куда шире, чем может показаться.

Функция enumerate() перебирает элементы итерируемого объекта с автоматической индексацией. Комбинируем с for — получаем отличный способ разобрать список.
Forwarded from Python Education
Как удалить пробелы из строки с помощью replace()

Как упоминалось выше, функция replace() – это одна из наиболее часто используемых строковых функций в Python. С ее помощью можно заменить определенный символ, слово или фразу в указанной строке. Синтаксис функции replace()
Forwarded from Python Education
Объект Ellipsis

В Python есть крайне интересный объект, который обозначается как ..., то есть многоточие. Этот объект называется Ellipsis, и используется он в основном как заготовка для чего-то еще не реализованного.

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

Если привести его к логическому типу данных, то увидим True — это важный момент, потому что похожий по своей сути None выдает False.

#ellipsis
Forwarded from Python Education
Перегрузка операторов

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

Например, выше в классе Point мы определили __str__, который отвечает за то, как выводятся объекты класса на экран.

Для перегрузки оператора "+" нужно определить метод __add__. Он принимает два аргумента, которыми являются, соответственно, операнды в операции сложения.

Таким образом, когда разработчик пишет запись p1 + p2, интерпретатор воспринимает это в виде Point.__add__(p1, p2). Для всех операторов в языке, включая и логические, есть свои магические методы.

#классы
Forwarded from Python Education
Копирование словарей и других объектов

Новички часто допускают такую ошибку при создании копии списка:
 = lst1

При работе с одним из словарей оказывается, что изменяются оба.

Почему так происходит?
Об этом — в завтрашнем посте. Пока что расскажу, как этого избежать:

У списка существует специальный метод copy(), который нужен как раз для таких случаев.

Но подобное работает не всегда! Если имеется множество вложенных списков, то надо сделать полное копирование импортировав модуль copy и воспользовавшись методом deepcopy().