Python | Программирование
9.61K subscribers
2.08K photos
2 videos
138 files
1.78K links
Python без границ для всех

Владелец, реклама @Ak_Mihail

Преобрести рекламное размещение: https://telega.in/c/Python_libr
Download Telegram
📌 Ключевые аргументы

• Если имеется некоторая функция с большим числом параметров, и при её вызове требуется указать только некоторые из них, значения этих параметров могут задаваться по их имени – это называется ключевые параметры. В этом случае для передачи аргументов функции используется имя (ключ) вместо позиции (как было до сих пор).

• Есть два преимущества такого подхода: во-первых, использование функции становится легче, поскольку нет необходимости отслеживать порядок аргументов; во-вторых, можно задавать значения только некоторым избранным аргументам, при условии, что остальные параметры имеют значения аргумента по умолчанию.

Пример (код на картинке).

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

#урок
6👍5
📌 Булевы значения

• Булевы значения в Python это две константы True и False.

• В Python истинными и ложными значениями считаются не только True и False.

истинное значение:
- любое ненулевое число
- любая непустая строка
- любой непустой объект

ложное значение:
- 0
- None
- пустая строка
- пустой объект

• Остальные истинные и ложные значения, как правило, логически следуют из условия.

Для проверки булевого значения объекта, можно воспользоваться bool: (код на картинке).

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

#урок
8👍6
📌 Использование списков, как очередей.

• Очередь – это другая структура данных, организованная по принципу “Первым пришёл, первым ушёл”(FIFO). В Питоне нет встроенного класса очереди, но вы можете также использовать списки Питона: для добавления элемента используйте append, а для получения последнего – метод pop(0)(метод pop удаляет элемент).

Пример (код на картинке).

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

#урок
9🔥5👌1
📌 Выражения в списках.

• В Питоне есть альтернативный способ создания списков по определённым правилам, позволяющий избегать использования функций filter(), map(), reduce(): использование выражений внутри списков. Такие выражения имеют следующий формат: заголовок цикла for, задающий ограничения при создании списков, за этим циклом может(необязательно) следовать некоторое количество условий if и циклов for, по которым, собственно, и создаётся результативный список.

Приведём пример таких выражений (код на картинке).

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

#урок
9🔥4
📌 Оператор del.

• Данный оператор полезен для удаления объектов из памяти, когда они не нужны(после удаления объекта или переменной, вы не сможете больше к ним обращаться). Кроме того, оператор del может использоваться для удаления элемента из списка по его индексу или по промежутку:

Пример (код на картинке).

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

#урок
8🔥2👎1
📌 Константные списки.

• Мы до сих пор рассматривали списки, т.е. последовательности, элементы которых могут быть доступны для изменения по отдельности. Другим типом последовательности является константный список(tuple). Такой список в теле программы обозначается списком элементов через запятую, может содержать в себе элементы различных типов, но изменить их через индекс не удастся(см. строки).

• Константные списки могут содержать в себе в качестве элементов другие последовательности. Для списков константного типа определены операции присваивания, склеивания +, индексации(только чтение). Использовать такие списки удобно при доступе к базам данных(одинаковые поля) и системам координат.

Рассмотрим пример константных списков (код на картинке).

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

#урок
6🔥4
📌 Использование списков, как стеков.

• Стек – это структура данных, организованнная по принципу “Последним пришёл, первым ушёл”(LIFO). В Питоне нет встроенного класса стека, но вы можете использовать списки Питона так, как они были бы стеками: для добавления элемента используйте append, а для получения последнего – метод pop() без аргумента(метод pop удаляет элемент).

Например (код на картинке).

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

#урок
7👍5
📌 Сравнение списков.

• Сравнение списков несколько отличается от сравнения простых числовых значений. Во-первых, списки должны быть одинакового типа. Во-вторых сравнение идёт в лексикографическом порядке, т.е оцениваются вначале первые элементы последовательностей, если они не равны, то далее возвращается результат(>;<;!=), иначе оценивается следующая пара элементов.

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

Приведём примеры сравнения последовательностей (код на картинке).

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

#урок
7👍3👎1
📌 Словари.

• Во всех рассмотренных последовательностях обращаться к отдельным элементам нужно было по индексу. Иную форму организации последовательности представляют словари. В словарях для доступа к отдельным его элементам используются ключевые индексы, подобные индексам в базах данных. Индексом может быть любой неизменяемый объект, такой как строка, число, константный список(такой список может содержать только строки, числа или другие константные списки).

• В тексте программы словари задаются фигурными скобками {} с элементами словаря. Каждому элементу словаря должен соответствовать определённый индекс, который отделяется от элемента двоеточием(“индекс:значение”). К элементам словаря можно обращаться по соответствующим им индексам. При обращении к несуществующему индексу возникает ошибка.

Вот простой пример использования словаря (код на картинке).

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

#урок
👍65
📌 Библиотека Python для создания PDF-документов.

• Это библиотека для создания PDF-документов на Python. Представляет собой форк неподдерживаемого модуля PYFPDF.

Минимальный пример создания PDF-документа (код на картинке).

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

#урок
7😁3
📌 Модуль string в Python, текстовые константы и шаблоны.

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

• Шаблоны строк предназначены в качестве альтернативы встроенному синтаксису замены переменных при форматировании строк. При интерполяции строки по шаблону string.Template переменные идентифицируются с помощью префикса $, например, $var. В качестве альтернативы, если необходимо выделить их из окружающего текста, они также могут быть обернуты фигурными скобками, например ${var}.

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

#урок
4👍3🔥1
📌 Модуль pyftpdlib в Python, FTP-сервер.

• Модуль pyftpdlib реализует серверную часть протокола FTP, как определено в RFC-959. По своей природе pyftpdlib является асинхронным. Это означает, что он использует один процесс/поток для обработки нескольких клиентских подключений и передачи файлов. Вот почему он такой быстрый, легкий и масштабируемый.

• Изменить асинхронную модель легко. Для этого нужно вместо класса FTPServer использовать классы ThreadedFTPServer или MultiprocessFTPServer. На практике это означает, что можно не бояться длительных блокирующих операции, а следовательно использовать FTP-сервер на медленных файловых системах.

Так как модуль pyftpdlib не входит в стандартную библиотеку Python, его необходимо установить отдельно. Сделать это можно с помощью менеджера пакетов pip (код на картинке).

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

#урок
5🔥5
📌 Модуль pyftpdlib в Python, FTP-сервер.

• Модуль pyftpdlib реализует серверную часть протокола FTP, как определено в RFC-959. По своей природе pyftpdlib является асинхронным. Это означает, что он использует один процесс/поток для обработки нескольких клиентских подключений и передачи файлов. Вот почему он такой быстрый, легкий и масштабируемый.

• Изменить асинхронную модель легко. Для этого нужно вместо класса FTPServer использовать классы ThreadedFTPServer или MultiprocessFTPServer. На практике это означает, что можно не бояться длительных блокирующих операции, а следовательно использовать FTP-сервер на медленных файловых системах.

Так как модуль pyftpdlib не входит в стандартную библиотеку Python, его необходимо установить отдельно. Сделать это можно с помощью менеджера пакетов pip (код на картинке).

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

#урок
7👍2🤔1
📌 Модуль pyftpdlib в Python, FTP-сервер.

• Модуль pyftpdlib реализует серверную часть протокола FTP, как определено в RFC-959. По своей природе pyftpdlib является асинхронным. Это означает, что он использует один процесс/поток для обработки нескольких клиентских подключений и передачи файлов. Вот почему он такой быстрый, легкий и масштабируемый.

• Изменить асинхронную модель легко. Для этого нужно вместо класса FTPServer использовать классы ThreadedFTPServer или MultiprocessFTPServer. На практике это означает, что можно не бояться длительных блокирующих операции, а следовательно использовать FTP-сервер на медленных файловых системах.

Так как модуль pyftpdlib не входит в стандартную библиотеку Python, его необходимо установить отдельно. Сделать это можно с помощью менеджера пакетов pip (код на картинке).

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

#урок
5👍4
📌 Модуль python-benedict в Python.

• Модуль python-benedict представляет собой обертку стандартного словаря Python, со множеством дополнительных встроенных методов, предназначенных для создания словаря из 'сырых данных', быстрой модификации и извлечения данных по мере необходимости, перевода данных словаря в различные форматы и т.д.

Способ создание словаря benedict (код на картинке).

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

#урок
6🔥4👍1
📌 Модуль faulthandler в Python, дампинг трассировок

• Модуль faulthandler содержит функции для явного дампинга трассировок Python, в случае сбоя, после тайм-аута или по сигналу пользователя.

• Вызовите faulthandler.enable(), чтобы установить обработчики ошибок для сигналов SIGSEGV, SIGFPE, SIGABRT, SIGBUS и SIGILL. Можно также включить их при запуске, установив переменную среды PYTHONFAULTHANDLER или используя параметр командной строки -X faulthandler.

Пример ошибки сегментации в Linux с включением обработчика ошибок и без него (код на картинке).

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

#урок
5👍5
📌 Модуль tomli-w в Python, запись документов TOML.

Модуль tomli-w предназначен только для записи файлов TOML или редактирования имеющихся TOML, полностью совместим с TOML v1.0.0. Представляет собой аналог стандартного модуля tomlib, который является синтаксическим анализатором TOML только для чтения.

Особенности модуля tomli-w:
• При преобразовании словаря dict в документ TOML данные не сортируются, но соблюдаются порядок сортировки входных данных, поэтому можно отсортировать содержимое dict (рекурсивно) перед вызовом функции tomli_w.dumps().
• Запись документов TOML с комментариями или пользовательскими пробелами не поддерживается.
• Если многострочная строка содержит новые строки n и/или r то модуль ее не запишет.

Примеры использования модуля (код на картинке).

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

#урок
6👍4
📌 Модуль psutil в Python, мониторинг ОС.

• Модуль psutil - это кроссплатформенная библиотека для получения информации о запущенных процессах и использовании системы (ЦП, память, диски, сеть, датчики) в Python. Этот модуль полезен для мониторинга системы, профилирования, ограничения ресурсов процессов и управления запущенными процессами.

• Он реализует множество функций, предлагаемых инструментами командной строки UNIX, такими как: ps, top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap.

Так как модуль psutil не входит в стандартную библиотеку Python, его необходимо установить отдельно. Сделать это можно с помощью менеджера пакетов pip (код на картинке).

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

#урок
7👍5
📌 Библиотека Pillow в Python.

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

• Pillow идеально подходит для приложений пакетной обработки изображений. Ее можно использовать для создания эскизов, преобразования между форматами файлов, печати изображений и т. д.

Прочитать изображение по URL можно следующим образом (код на картинке).

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

#урок
6👍3
📌 Модуль pyftpdlib в Python, FTP-сервер.

• Модуль pyftpdlib реализует серверную часть протокола FTP, как определено в RFC-959. По своей природе pyftpdlib является асинхронным. Это означает, что он использует один процесс/поток для обработки нескольких клиентских подключений и передачи файлов. Вот почему он такой быстрый, легкий и масштабируемый.

• Изменить асинхронную модель легко. Для этого нужно вместо класса FTPServer использовать классы ThreadedFTPServer или MultiprocessFTPServer. На практике это означает, что можно не бояться длительных блокирующих операции, а следовательно использовать FTP-сервер на медленных файловых системах.

Так как модуль pyftpdlib не входит в стандартную библиотеку Python, его необходимо установить отдельно. Сделать это можно с помощью менеджера пакетов pip (код на картинке).

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

#урок
6🔥4