Функция findall()
Если мы хотим найти все вхождения, в дело вступает функция
Синтаксис:
В случае успеха данная функция возвращает список, в котором в виде строк содержатся все искомые вхождения по порядку. Если вхождений нет, то эта функция возвратит пустой список.
Подписывайтесь на канал 👉@pythonofff
Если мы хотим найти все вхождения, в дело вступает функция
findall()
.Синтаксис:
findall(pattern, string, flags=0[optional])
В случае успеха данная функция возвращает список, в котором в виде строк содержатся все искомые вхождения по порядку. Если вхождений нет, то эта функция возвратит пустой список.
Подписывайтесь на канал 👉@pythonofff
Как парсить сайты с авторизацией на python?
Для парсинга сайтов с авторизацией, Вы можете воспользоваться
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Для парсинга сайтов с авторизацией, Вы можете воспользоваться
selenium
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Обработка строки
Полезные функции для работы со строками. Python известен тем, что можно написать код в одну строчку использованием метода вместо перебора списком.
Перечислим наиболее полезные методы:
capitalize() - первая буква большая, остальные маленькие
strip() - удаление пробелов в начале и конце
center(int, chr='') - отцентрирует текст, int - нужное кол-во символов в строке, а chr - символ для добавления в начало и конец
swapcase() - заглавные буквы в прописные, маленькие в большие
lower() - преобразует к нижнему регистру
upper() - преобразует к верхнему регистру
При написании нейронок и ботов обязательно приводите все к нижнему регистру с помощью lower(). При написании ботов часто использую center(), для красивого вывода.
Подписывайтесь на канал 👉@pythonofff
Полезные функции для работы со строками. Python известен тем, что можно написать код в одну строчку использованием метода вместо перебора списком.
Перечислим наиболее полезные методы:
capitalize() - первая буква большая, остальные маленькие
strip() - удаление пробелов в начале и конце
center(int, chr='') - отцентрирует текст, int - нужное кол-во символов в строке, а chr - символ для добавления в начало и конец
swapcase() - заглавные буквы в прописные, маленькие в большие
lower() - преобразует к нижнему регистру
upper() - преобразует к верхнему регистру
При написании нейронок и ботов обязательно приводите все к нижнему регистру с помощью lower(). При написании ботов часто использую center(), для красивого вывода.
Подписывайтесь на канал 👉@pythonofff
Работа с процессами в Python
С появлением многоядерных процессоров стала общеупотребительной практика распространять нагрузку на все доступные ядра. Существует два основных подхода в распределении нагрузки: использование процессов и потоков. О первом мы как раз сейчас и поговорим.
Подробнее
Подписывайтесь на канал 👉@pythonofff
С появлением многоядерных процессоров стала общеупотребительной практика распространять нагрузку на все доступные ядра. Существует два основных подхода в распределении нагрузки: использование процессов и потоков. О первом мы как раз сейчас и поговорим.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Модуль shutil
Очень смешное название, но библиотека является мощным инструментом для обработки файлов. В прошлом посте говорилось о модуль os. Надо учитывать, что многие задачи решить через него можно, но придется постараться.
Программисты комбинируют os и
Библиотека позволяет так же работать с архивами
Подписывайтесь на канал 👉@pythonofff
Очень смешное название, но библиотека является мощным инструментом для обработки файлов. В прошлом посте говорилось о модуль os. Надо учитывать, что многие задачи решить через него можно, но придется постараться.
Программисты комбинируют os и
shutil
для достижения наиболее красивого и эффективного кода.shutil.copyfileobj(fsrc, fdst)
- копирует один файл в другой.shutil.copymode(fsrc, fdst)
- копирует права доступа из одного файла в другой.shutil.copystat(fsrc, fdst)
- копирует дату последнего доступа и изменения из одного файла в другой.Библиотека позволяет так же работать с архивами
shutil.get_archive_formats()
, чтобы узнать доступные для работы архивы. Подписывайтесь на канал 👉@pythonofff
Модуль zipfile
Как говорилось ранее с zip может работать модуль
Для начала надо из zipfile импортировать ZipFile. И открыть файл
Для практики на картинке показана программа выводящая красивый вложенный список файлов находящихся в архиве.
Больше возможностей можно узнать через
Подписывайтесь на канал 👉@pythonofff
Как говорилось ранее с zip может работать модуль
shutil
, но zipfile
более многофункционален. С другой стороны он не так универсален и работает только с зипами. За все надо платить, не существует идеального способа для всего.Для начала надо из zipfile импортировать ZipFile. И открыть файл
ZipFile(file)
.printdir()
- вывод списка содержимого текстом для печати.namelist()
- вывод списка фалов списком.open()
- открыть файл внутри архива, далее работа проходит аналогично работе фалов.Для практики на картинке показана программа выводящая красивый вложенный список файлов находящихся в архиве.
Больше возможностей можно узнать через
help()
или документацию. Подписывайтесь на канал 👉@pythonofff
Как перевести символ в ascii на python?
Вы можете использовать метод
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать метод
.ord()
для перевода символа в ascii.char = "T"
print(ord(char))
Подписывайтесь на канал 👉@pythonofff
Итерирование с использованием функции enumerate
Функция range позволяет получить только индексы элементов списка. Функция
Получается короткий и понятный код!
В примере разберем как извлечь из списка элементы и их индекс, рис.1.
Еще одной полезной и крутой фишкой этой функции будет легкое создания счетчика. Более того, мы можем установить первоначальное значение счетчика, рис. 2.
Подписывайтесь на канал 👉@pythonofff
Функция range позволяет получить только индексы элементов списка. Функция
enumerate
генерирует кортежи, состоящие из двух элементов – индекса элемента и самого элемента. Эти кортежи можно распаковать еще в заголовке for
Получается короткий и понятный код!
В примере разберем как извлечь из списка элементы и их индекс, рис.1.
Еще одной полезной и крутой фишкой этой функции будет легкое создания счетчика. Более того, мы можем установить первоначальное значение счетчика, рис. 2.
Подписывайтесь на канал 👉@pythonofff
Сборка exe файлов - pyinstaller
Если вы просто скопируете проект, то он не будет работать на других системах где нет установленного Python, а если есть, то возможно там отсутствуют нужные библиотеки. Но можно создать исполняемый файл exe, который запустится и без Python. Необходимо установить pyinstaller:
--noconsole - консоль не будет запускаться при открытии
main.py - файл, при запуске которого начинает работать ваша программа
В папке dist будет лежать нужный файл, остальные созданные папки можно удалить
Внимание! С помощью данного метода не получится скрыть ваш код, так же вы не получите прироста в скорости работы программы.
Подписывайтесь на канал 👉@pythonofff
Если вы просто скопируете проект, то он не будет работать на других системах где нет установленного Python, а если есть, то возможно там отсутствуют нужные библиотеки. Но можно создать исполняемый файл exe, который запустится и без Python. Необходимо установить pyinstaller:
install pyinstaller
Затем перейти в командную строку, и перейти в нужную директорию с помощью команды cd. Далее напишем такой код: --onefile --noconsole main.py
--onefile - означает, что будет только один исполняемый файл.--noconsole - консоль не будет запускаться при открытии
main.py - файл, при запуске которого начинает работать ваша программа
В папке dist будет лежать нужный файл, остальные созданные папки можно удалить
Внимание! С помощью данного метода не получится скрыть ваш код, так же вы не получите прироста в скорости работы программы.
Подписывайтесь на канал 👉@pythonofff
Как перевести массив в список на python?
Вы можете использовать метод
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать метод
.tolist()
для перевода массива в список.Подписывайтесь на канал 👉@pythonofff
Разница между
Недавно в чате наши подписчики затрагивали эту тему, поэтому мы решили разложить всё по полочкам, чтобы в дальнейшем не возникало вопросов.
Итак, оператор
Однако Python в целях производительности кеширует короткие строки и малые целые числа, поэтому возможны некоторые казусы, как в примере.
Подписывайтесь на канал 👉@pythonofff
==
и is
Недавно в чате наши подписчики затрагивали эту тему, поэтому мы решили разложить всё по полочкам, чтобы в дальнейшем не возникало вопросов.
Итак, оператор
==
проверяет равенство значений двух объектов. А оператор is в свою очередь проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти.Однако Python в целях производительности кеширует короткие строки и малые целые числа, поэтому возможны некоторые казусы, как в примере.
Подписывайтесь на канал 👉@pythonofff
Как округлить до тысячных в python?
Вы можете использовать
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать
round()
Подписывайтесь на канал 👉@pythonofff
Как создать массив из n элементов в python?
Вы можете использовать цикл и метод
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать цикл и метод
.append()
. Так же для примера можно использовать модуль random.Подписывайтесь на канал 👉@pythonofff
Библиотека FuzzyWuzzy
Интересная и полезная библиотека поиска совпадений в тексте. Очень поможет вам при работе над общающимися ботами: голосовыми или текстовыми помощниками.
Разумеется, это один из инструментов, всегда можно использовать другой, но я лично пользуюсь этим.
Библиотеку следует установить:
Интересная и полезная библиотека поиска совпадений в тексте. Очень поможет вам при работе над общающимися ботами: голосовыми или текстовыми помощниками.
Разумеется, это один из инструментов, всегда можно использовать другой, но я лично пользуюсь этим.
Библиотеку следует установить:
install fuzzywuzzy
Подписывайтесь на канал 👉@pythonofffИзбегайте неоправданных циклов с коллекциями
Предположим, что требуется создать новый список, элементами которого будут являться квадраты чисел данного списка. Большинство сразу же напишут простенький цикл
Но в этом и проблема. Такой подход займет как минимум три строчки: объявление новой переменной, создание цикла и инструкции внутри него. При этом также снижается скорость работы скрипта.
На прикрепленной картинке я привел две достойные альтернативы, а именно использование генератора списков и функции map. В обоих вариантах не только код становится короче и выразительнее, но и заметно повышается производительность.
Подписывайтесь на канал 👉@pythonofff
Предположим, что требуется создать новый список, элементами которого будут являться квадраты чисел данного списка. Большинство сразу же напишут простенький цикл
for
.Но в этом и проблема. Такой подход займет как минимум три строчки: объявление новой переменной, создание цикла и инструкции внутри него. При этом также снижается скорость работы скрипта.
На прикрепленной картинке я привел две достойные альтернативы, а именно использование генератора списков и функции map. В обоих вариантах не только код становится короче и выразительнее, но и заметно повышается производительность.
Подписывайтесь на канал 👉@pythonofff
"Быстрый" контейнер deque
Встроенных списков в Python иногда может не хватать, поэтому покажем одну хорошую альтернативу.
Также для
Подписывайтесь на канал 👉@pythonofff
Встроенных списков в Python иногда может не хватать, поэтому покажем одну хорошую альтернативу.
Deque
может быть реализован c помощью модуля collections
. Deque
предпочтительнее, чем обычный список, в тех случаях, когда нам нужны более быстрые операции добавления и вытягивания элементо из обоих концов контейнера, поскольку deque
обеспечивает линейную сложность O(1) для операций добавления и выталкивания по сравнению со списком, у которого сложность по времени для тех операций составляет O(n).Также для
deque
есть возможность использовать стандартные функции по типу sum
, min
, max
и тому подобные. Подписывайтесь на канал 👉@pythonofff
Как проверить существование переменной в Python?
Вы можете использовать
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать
in locals()
или in globals()
, чтобы проверить переменная существует в Python, разница только:in locals()
проверяет если переменная объявлена в локальной зоне видимостиin globals()
проверяет если переменная объявлена в глобальной зоне видимостиПодписывайтесь на канал 👉@pythonofff
Контекстные менеджеры
Контекстные менеджеры позволяют задать поведение при работе с конструкцией
Простейшей функцией, использующей данный принцип является функция
Чтобы каждый раз не вызывать метод
Подписывайтесь на канал 👉@pythonofff
Контекстные менеджеры позволяют задать поведение при работе с конструкцией
with
: при входе и выходе из блока. Это упрощает работу с ресурсами в части их захвата и освобождения; транзакциями, когда нужно либо полностью закончить транзакцию, либо откатить ее целиком. Простейшей функцией, использующей данный принцип является функция
open
. Каждый раз, когда мы открываем файл, нам необходимо его закрыть, чтобы вытолкнуть выходные данные на диск (на самом деле Python вызывает метод close
автоматически, но явное его использование является хорошим тоном). Чтобы каждый раз не вызывать метод
close
мы можем воспользоваться контекстным менеджером функции open
, который автоматически закроет файл после выхода из блока. Подписывайтесь на канал 👉@pythonofff
Вывод значения по умолчанию для отсутствующего ключа словаря
Если вы обратитесь к несуществующему ключу словаря, то это вызовет исключение. Избежать этого можно, вызывая метод
Подписывайтесь на канал 👉@pythonofff
Если вы обратитесь к несуществующему ключу словаря, то это вызовет исключение. Избежать этого можно, вызывая метод
get
. В примере метод выдает None
(по умолчанию) или заданное значение аргумента.Подписывайтесь на канал 👉@pythonofff
Декораторы
Очень важная тема, с помощью декорирования можно писать очень удобные логи или существенно расширять функции.
Многие библиотеки работают с использованием декораторов:
Мы показываем лишь простой пример, возможности куда шире. Позже покажем пример использования с упоминаемыми выше библиотеками.
Подписывайтесь на канал 👉@pythonofff
Очень важная тема, с помощью декорирования можно писать очень удобные логи или существенно расширять функции.
Многие библиотеки работают с использованием декораторов:
Flask
и aiogram
хорошие тому примеры.Мы показываем лишь простой пример, возможности куда шире. Позже покажем пример использования с упоминаемыми выше библиотеками.
Подписывайтесь на канал 👉@pythonofff