TGTGInsightinteligencia telegramLIVE / telegram public index
Volver a canales
Python Academy avatar

TGINSIGHT CHAT

Python Academy

@python_academy

Educación

Python Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu

Suscriptores4.5万Suscriptores actuales
Posts rastreados1,014Posts indexados
Alcance reciente90,669Vistas de posts recientes
Posts recientes

Posts recientes

Pág. 75 de 85 · 1,014 posts

Publicado 16 jun

Делегирующие генераторы Давайте создадим простенькую генераторную функцию subgen, которая будет возвращать числа от 0 до переданного аргумента. А также ещё одну генераторную функцию delegator, которая будет возвращать числа из итерируемого объекта source, который передадим в качестве аргумента. Цикл, который можно написать в delegator, можно заменить всего лишь одной строчкой. То есть yield from заменяет цикл for, в котором только возвращаются значения через yield. Грубо говоря, такая конструкция является неким туннелем передачи данных туда и обратно. В нашей ситуации delegator можно назвать делигирующим генератором, а subgen подгенератором. #генераторы

7,350 views

Publicado 14 jun

Вычисление выражений Python Вы наверняка знакомы с eval, но знаете ли вы о literal_eval? Вряд ли. Для безопасного исполнения выражений, содержащих исключительно литералы, вы можете делать так, как показано на картинке выше. Между прочим, данная фича находится в языке уже очень давно. #tips#eval

7,920 views

Hashtags

Publicado 13 jun

Генераторы Функции-генераторы выглядят как и обычные, но вместо return содержат выражения с ключевым словом yield для последовательного генерирования значений. Вызов подобной функции вернёт не значение, а объект генератора. Далее из этого объекта можно получать значения, например, с помощью функции next или циклом for. Если генератору больше нечего возвращать, то будет вызвано исключение StopIteration. В целом, генератор — это особый, более изящный случай итератора. #генераторы

8,080 views

Publicado 10 jun

Дробные числа По умолчанию числа с плавающей точкой используют память привычным образом, то есть они хранятся в двоичном виде. Это означает, что вы обычно работаете с приблизительными значениями, а не точными. Можно использовать тип данных Decimal, который предоставит намного большую точность, но и его может не хватить в некоторых случаях. Поэтому для идеальных вычислений лучше использовать Fraction, который представляет и хранит число в виде рациональной дроби. #числа#fraction

7,590 views

Publicado 9 jun

Вызов программ операционной системы sh — это полноценный интерфейс, как альтернатива subprocess, который позволяет вызывать любую программу, как если бы это была обычная функция. Все запускаемые команды импортируются, как обычные функции, но функциями не являются, а лишь динамически обращаются к командам системы. Таким образом мы можем по сути обратиться к любой программе в системе. sh полагается на системные вызовы Unix и работает только в Unix-подобных операционных системах, т.е. данный модуль не подойдет для работы с Windows. Для обращения к командам программы и передать набор аргументов команды, мы можем передать их как обычные аргументы функции. Также в модуле реализована функция which, которая находит полный путь до программы либо возвращает None, если программа не найдена. #sh

8,189 views

Hashtags

Publicado 8 jun

Официальное упорядочивание словарей Кстати, Python 3.7 на официальном уровне зафиксировал соответствие порядка перебора элементов словарей порядку их добавления. Но для некоторых это не такая уж и новость, так как и в Python 3.6 словари уже были упорядочены, что видно на примере выше. Однако это был просто побочный результат реализации, не зафиксированный в стандарте. Новый Python оформил его официально. Теперь можно быть уверенным в сохранении порядка вставки. #словари

7,590 views

Publicado 7 jun

Многопоточность В модуле threading новый поток выполнения может начинаться с нового threading.Thread и присвоения ему функции для выполнения. Параметр target ссылается на функцию (или вызываемый объект), который будет работать. Нить не начнет выполнение до start, также не будет вызываться Thread объекта. Когда my_thread завершается, вызов start выкинет исключение RuntimeError. Если вы хотите запустить Thread в фоновом режиме, то передавайте daemon=True или установите my_thread.daemon в True перед вызовом start(). #потоки#многопоточность

7,560 views

Publicado 6 jun

Частичное применение Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию partial из стандартной библиотеки functools. Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций. Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров. #functools

7,290 views

Hashtags

Publicado 5 jun

Список импортов по умолчанию Для ограничения импорта переменных, функций и классов по умолчанию можно использовать список __all__, в который записываются названия объектов, которые будут подключены. Таким образом, при импорте вида from module import * из модуля c подобной записью подключатся только объекты с названиями из списка __all__. Тем не менее, в примере выше импортировать функцию foo из такого модуля всё ещё можно, например, с помощью записи from module import foo. #модули

7,680 views

Publicado 4 jun

Временные файлы В стандартной библиотеке Python есть модуль tempfile, который содержит классы и методы для корректной работы со временными файлами и директориями. Функция TemporaryFile создает временный файл в системной директории и возвращает файлоподобный объект. Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера. Также другие процессы и приложения не смогут получить доступ к этому временному файлу. #tempfile

7,570 views

Hashtags

Publicado 4 jun

Отлавливаем баги с assert При выполнении инструкции assert с логическим выражением, результат которого равен True, ничего не произойдет. Но если попробовать выполнить инструкцию assert с логическим выражением, которое равно False, то будет сгенерировано исключение AssertionError. Исключения AssertionError предназначены скорее для отладки. При написании программ на этапе разработки мы можем видеть, что делаем что-то не так (например, передали в метод некорректное значение). Также не нужно, к примеру, обрабатывать пользовательский ввод и пытаться обработать исключение AssertionError блоком try-except. Если в вашем коде будет очень много assert'ов, то это затронет и производительность программы. #исключения#assert

6,790 views

Publicado 3 jun

Генерация капчи Сегодня покажем создание простейшей капчи. Для этого нам понадобится модуль captcha и Pillow, который используется для создание изображений в captcha. Все максимально просто, за нас по сути все делает уже написанный в модуле код. Создаем объект изображения ImageCaptcha, на который будет нанесен текст. После чего вызываем метод write с заданным текстом и именем файла, в который будет записано изображение. #captcha

7,060 views

Hashtags

12•••5•••10•••15•••20•••25•••30•••35•••40•••45•••50•••55•••60•••65•••70•••7374757677•••80•••8485