⚡️ Отслеживаем изменения в файлах
pyinotify — интересный модуль с открытым исходным кодом, позволяющий отслеживать изменения в файловой системе. Печально, правда, что он работает только на ОС Linux.
Установка:
Попробовать библиотеку можно с помощью команды
#миниурок #pyinotify
pyinotify — интересный модуль с открытым исходным кодом, позволяющий отслеживать изменения в файловой системе. Печально, правда, что он работает только на ОС Linux.
Установка:
pip install pyinotify
Модуль используют функцию ядра Linux (объединённую с версии 2.6.13), называемую inotify. Уведомления из ядра экспортируются в пространство пользователя и позволяют мониторить изменения в файловой системе.Попробовать библиотеку можно с помощью команды
python -m pyinotify ./
. Или же загрузив пример с guthub.#миниурок #pyinotify
Что выведет код выше?
Anonymous Quiz
30%
[0, 'py', 'thon']
33%
[0, 'py', 't', 'h', 'o', 'n']
7%
[0, 'p', 'y', 't', 'h', 'o', 'n']
21%
['py', 'thon']
8%
Узнать ответ
⚡️ Генераторные списки
Генераторные списки — синтаксическая конструкция, позволяющая превращать циклические конструкции в одну строку.
Выглядит она так:
Такое можно проделывать не только со списками, а и с кортежами, множествами, просто заменив квадратные скобки на круглые или фигурные (в зависимости от типа).
Если же скобки убрать, то мы получим обычный генератор, который можно использовать так, как захочется (например с функцией sum).
#теория
Генераторные списки — синтаксическая конструкция, позволяющая превращать циклические конструкции в одну строку.
Выглядит она так:
[expression for member in iterable]
, где expression — значение, которое будет записано в список, member — переменная, в которую записывается результат прохода по циклу и iterable — итерируемый объект, с которым работает конструкция.Такое можно проделывать не только со списками, а и с кортежами, множествами, просто заменив квадратные скобки на круглые или фигурные (в зависимости от типа).
Если же скобки убрать, то мы получим обычный генератор, который можно использовать так, как захочется (например с функцией sum).
#теория
⚡️ Задачка с собеседования | #Medium, #Hard
Условие:
Ваша задача — написать функцию, которая будет проверять, является ли предложение палиндромом. Палиндромом — предложение, которое читается одинаков слева на право и с права на лево.
Пример:
is_palindrome('A man, a plan, a canal: Panama') -> True
is_palindrome('0P') -> False
is_palindrome('a.') -> True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая будет проверять, является ли предложение палиндромом. Палиндромом — предложение, которое читается одинаков слева на право и с права на лево.
Пример:
is_palindrome('A man, a plan, a canal: Panama') -> True
is_palindrome('0P') -> False
is_palindrome('a.') -> True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Ускоряем выполнения кода
Для этого нам может пригодится Cython, модуль переводящий код из языка Python в C с минимальным количеством изменений.
Установка:
После — компилируем код с помощью скрипта из второго файла и запускаем его командой
В результате мы получим файл с си кодом. Мы можете открыть интерпретатор python и импортировать функцию test командой
Для этого нам может пригодится Cython, модуль переводящий код из языка Python в C с минимальным количеством изменений.
Установка:
pip install cython
Основное различие между кодом python и cython в том, что cpdef, cdef, def передают название переменных/функций. cpdef используется при создании кода, доступного и из python и из cython, когда cdef доступен только для второго.После — компилируем код с помощью скрипта из второго файла и запускаем его командой
python3 setup.py build_ext --inplace
.В результате мы получим файл с си кодом. Мы можете открыть интерпретатор python и импортировать функцию test командой
from cython_ex import test
#миниурок #cythonЧто выведет код выше?
Anonymous Quiz
12%
False False False
21%
True True True
12%
True True False
46%
False Flase True
9%
Узнать ответ
⚡️ Оператор моржа
Данный оператор доступен с версии Python 3.8. Он позволяет записывать данные в переменную и выполнять определённое действие.
С ним можно избежать повторного использования одной и той же функции.
Записывается оператор моржа так
Применения у него множество, например, в генераторных списках, циклах, при вызове функции и других выражениях.
#теория
Данный оператор доступен с версии Python 3.8. Он позволяет записывать данные в переменную и выполнять определённое действие.
С ним можно избежать повторного использования одной и той же функции.
Записывается оператор моржа так
var_name :=
value
, где :=
это и есть оператор. Подробнее о нём можете почитать в PEP 572.Применения у него множество, например, в генераторных списках, циклах, при вызове функции и других выражениях.
#теория
⚡️ Задачка с собеседования | #Easy, #Medium
Условие:
Ваша задача — написать функцию, которая принимает число и проверяет, является ли оно вознесённой в степень тройкой. Необходимо найти самый быстрый способ вычисления.
Пример:
isPowerOfThree(27) -> True
isPowerOfThree(11) -> False
isPowerOfThree(1) -> True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая принимает число и проверяет, является ли оно вознесённой в степень тройкой. Необходимо найти самый быстрый способ вычисления.
Пример:
isPowerOfThree(27) -> True
isPowerOfThree(11) -> False
isPowerOfThree(1) -> True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Выполняем команды прямо в терминале
sh — интересный модуль с открытым исходным кодом, позволяющий запускать команды из системы Python. Он намного проще, чем subprocess.
Установка:
Вы также можете перенаправлять вывод, «запечатывать» команды и создавать подкоманды — в этом и заключается преимущество модуля.
#миниурок #sh
sh — интересный модуль с открытым исходным кодом, позволяющий запускать команды из системы Python. Он намного проще, чем subprocess.
Установка:
pip install sh
Данная библиотека выполняет команду, записанную как функцию, в скобочках получает аргументы этой команды, а после выполнения — возвращает результат работы или записывает его в _out.Вы также можете перенаправлять вывод, «запечатывать» команды и создавать подкоманды — в этом и заключается преимущество модуля.
#миниурок #sh
Что выведет код выше?
Anonymous Quiz
49%
Hello world!
8%
Helloworld
15%
Ничего
16%
Ошибку
13%
Узнать ответ
⚡️ Обрабатываем аргументы командной строки
argparse — встроенный модуль, позволяющий обработать данные, переданные при запуске скрипта из терминала.
На самом деле, argparse, является обёрткой над
А если вам нужно больше возможностей, то просто создайте класс ArgumentParser, который сгенерирует базовые команды (-h, --help), описание и название программы.
После этого вы сможете добавить свои аргументы, используя метод
#миниурок #argparse
argparse — встроенный модуль, позволяющий обработать данные, переданные при запуске скрипта из терминала.
На самом деле, argparse, является обёрткой над
sys.argv
и, если у вас простенький скрипт, который принимает 1-2 аргумента, то я советую получать аргументы напрямую из sys.А если вам нужно больше возможностей, то просто создайте класс ArgumentParser, который сгенерирует базовые команды (-h, --help), описание и название программы.
После этого вы сможете добавить свои аргументы, используя метод
add_argument
. Чтобы получить все данные, воспользуйтесь методом parse_args
, который возвращает список из параметров.#миниурок #argparse
⚡️ Задачка с собеседования | #Easy, #Medium
Условие:
Ваша задача — написать функцию, которая добавляет один к последним цифрам в строке. Если же строка пустая или цифр в конце не обнаружилось — добавляет их самостоятельно.
Пример:
increment_string('foo') -> foo1
increment_string('agent006') -> agent007
increment_string('f0o1') -> f0o2
increment_string('f0o999') -> f0o1000
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая добавляет один к последним цифрам в строке. Если же строка пустая или цифр в конце не обнаружилось — добавляет их самостоятельно.
Пример:
increment_string('foo') -> foo1
increment_string('agent006') -> agent007
increment_string('f0o1') -> f0o2
increment_string('f0o999') -> f0o1000
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Системный модуль в Python
sys — предустановленный модуль, обеспечивающий доступ к функция и переменным интерпретатора Python.
Данный модуль имеет огромное количество функций и переменных, подробнее о них можете почитать на сайте документации. Здесь же будут самые интересные из них:
sys — предустановленный модуль, обеспечивающий доступ к функция и переменным интерпретатора Python.
Данный модуль имеет огромное количество функций и переменных, подробнее о них можете почитать на сайте документации. Здесь же будут самые интересные из них:
sys.platform
— позволяет узнать платформу, на которой запущен Python и, на её основе выполнить определённый код. Также, она возвращает строку. Все значения тут.sys.stdin
— файловая переменная, позволяющая получить данным к входным данным из терминала.sys.stdout
, sys.stderr
— файловые переменные позволяющие выводить в терминал сообщения/ошибки.sys.version_info
— позволяет узнать версию языка, на котором запускается скрипт. Возвращает кортеж. Если же вам нужна строка, воспользуйтесь sys.version
#миниурок #sys