**kwargs
Когда изучаешь любой язык, на пути встречается множество краеугольных камней. В случае с Python понимание таинственного синтаксиса **kwargs можно считать одним из них.
Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы.
Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs.
Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.
Также это может пригодиться при написании функций-обёрток, которые передают все аргументы другой функции.
Когда изучаешь любой язык, на пути встречается множество краеугольных камней. В случае с Python понимание таинственного синтаксиса **kwargs можно считать одним из них.
Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы.
Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs.
Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.
Также это может пригодиться при написании функций-обёрток, которые передают все аргументы другой функции.
👍1
Функция shorten()
Функция shorten() модуля textwrap усекает заданный текст, чтобы он поместился в заданную ширину width.
Сначала все пробелы заменяются одиночными пробелами. Если результат соответствует ширине, он возвращается. В противном случае с конца отбрасывается слова, чтобы оставшийся текст плюс заполнитель placeholder (по умолчанию [...]) поместились в указанную ширину width.
Функция shorten() модуля textwrap усекает заданный текст, чтобы он поместился в заданную ширину width.
Сначала все пробелы заменяются одиночными пробелами. Если результат соответствует ширине, он возвращается. В противном случае с конца отбрасывается слова, чтобы оставшийся текст плюс заполнитель placeholder (по умолчанию [...]) поместились в указанную ширину width.
Функция multimode()
Функция multimode() модуля statistics возвращает список наиболее часто встречающихся значений элементов в последовательности data в том порядке, в котором они были обнаружены.
Аргумент data может быть последовательностью или итерацией.
Функция statistics.multimode() вернет более одного результата, если в последовательности есть несколько элементов с одинаковым максимальным числом повторений или пустой список, если данные data пусты.
Функция multimode() модуля statistics возвращает список наиболее часто встречающихся значений элементов в последовательности data в том порядке, в котором они были обнаружены.
Аргумент data может быть последовательностью или итерацией.
Функция statistics.multimode() вернет более одного результата, если в последовательности есть несколько элементов с одинаковым максимальным числом повторений или пустой список, если данные data пусты.
👍1
Заменяем часть строки
Со строками в Python работать очень удобно, так как встроенных методов для них довольно много. Одним из методов является
Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться.
Также есть третий опциональный аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию все вхождения заменяются.
Со строками в Python работать очень удобно, так как встроенных методов для них довольно много. Одним из методов является
str.replace()
, который позволяет заменять части строк.Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться.
Также есть третий опциональный аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию все вхождения заменяются.
Функция groupby()
Функция groupby() модуля itertools создает итератор, который возвращает последовательные ключи и группы из итерируемой последовательности iterable.
Ключ key - это функция, вычисляющая значение ключа для каждого элемента. Если ключ не указан или равен None, ключом по умолчанию является функция тождественности и возвращает элемент без изменений. Как правило, iterable уже должна быть отсортирована по той же ключевой функции.
Функция groupby() модуля itertools создает итератор, который возвращает последовательные ключи и группы из итерируемой последовательности iterable.
Ключ key - это функция, вычисляющая значение ключа для каждого элемента. Если ключ не указан или равен None, ключом по умолчанию является функция тождественности и возвращает элемент без изменений. Как правило, iterable уже должна быть отсортирована по той же ключевой функции.
👍1
Назначение переменных и функций по условию
Иногда элементы if настолько просты, что кажется излишним тратить на них строки. В этом случае имеет смысл применить тернарный оператор if/else:
A = Y if X else Z
Интерпретатор выполняет выражение Y, если объект X – истина, и Z, если X – ложь. Не злоупотребляйте этим выражением, если X, Y, Z имеют сложную форму записи.
Тернарный оператор можно использовать не только для переменных, но и для функций.
Иногда элементы if настолько просты, что кажется излишним тратить на них строки. В этом случае имеет смысл применить тернарный оператор if/else:
A = Y if X else Z
Интерпретатор выполняет выражение Y, если объект X – истина, и Z, если X – ложь. Не злоупотребляйте этим выражением, если X, Y, Z имеют сложную форму записи.
Тернарный оператор можно использовать не только для переменных, но и для функций.
Метод Counter.subtract()
Метод Counter.subtract() вычитает элементы текущего счетчика cnt и итерируемой последовательности или другого словаря или другого счетчика Counter(). Подобно методу словаря dict.update(), но вычитает количество (значения ключей), а не заменяет их.
Значения ключей как у счетчика так и у словаря могут быть нулевыми или отрицательными.
Метод Counter.subtract() вычитает элементы текущего счетчика cnt и итерируемой последовательности или другого словаря или другого счетчика Counter(). Подобно методу словаря dict.update(), но вычитает количество (значения ключей), а не заменяет их.
Значения ключей как у счетчика так и у словаря могут быть нулевыми или отрицательными.
Дескрипторы
Атрибуты можно превратить в дескрипторы, изменив их стандартное поведение с помощью методов get, set или delete. Таким образом можно, например, запретить перезапись или удаление свойства.
Создадим такой дескриптор, используя для удобства декоратор(см картинку выше).
Теперь при обращении через точку к дескриптору foo, управление передается его методу get, который сначала печатает строчку с данными дескриптора, а затем вызывает его "родной" геттер (выполняется код функции foo).
Дескрипторы – довольно сложная фича, но вам стоит разобраться в ней, чтобы глубже понимать как работает язык программирования Python.
Атрибуты можно превратить в дескрипторы, изменив их стандартное поведение с помощью методов get, set или delete. Таким образом можно, например, запретить перезапись или удаление свойства.
Создадим такой дескриптор, используя для удобства декоратор(см картинку выше).
Теперь при обращении через точку к дескриптору foo, управление передается его методу get, который сначала печатает строчку с данными дескриптора, а затем вызывает его "родной" геттер (выполняется код функции foo).
Дескрипторы – довольно сложная фича, но вам стоит разобраться в ней, чтобы глубже понимать как работает язык программирования Python.
Изучение SQL с нуля
👉 @SQl_and_DB_Learning 👈
👉 @SQl_and_DB_Learning 👈
👉 @SQl_and_DB_Learning 👈
Подписывайся и изучай новый для себя язык программирования.
👉 @SQl_and_DB_Learning 👈
👉 @SQl_and_DB_Learning 👈
👉 @SQl_and_DB_Learning 👈
Подписывайся и изучай новый для себя язык программирования.
Редактор видео
Все еще в поиске крутого видео редактора? Зачем что-то искать, когда есть Python и замечательная библиотека MoviePy.
За счет MoviePy вы можете перевернуть видео, можете его обрезать, можете изменить количество FPS и можете выполнить ещё много других действий.
Мы создадим программу, что будет принимать видео и отделять от него звук, который будем сохранять в качестве отдельного файла. Чтобы такое записать потребуется лишь пару строк кода.
Все еще в поиске крутого видео редактора? Зачем что-то искать, когда есть Python и замечательная библиотека MoviePy.
За счет MoviePy вы можете перевернуть видео, можете его обрезать, можете изменить количество FPS и можете выполнить ещё много других действий.
Мы создадим программу, что будет принимать видео и отделять от него звук, который будем сохранять в качестве отдельного файла. Чтобы такое записать потребуется лишь пару строк кода.
👍2
try-except-else
В конструкцию try-except можно добавить также блок else. Он отработает только в случае выполнения кода без ошибок.
Использовать блок else предпочтительнее, чем добавлять дополнительный код в блок try. Это позволяет избежать случайного перехвата исключений, которые не были вызваны кодом, защищенным конструкцией try-except.
В конструкцию try-except можно добавить также блок else. Он отработает только в случае выполнения кода без ошибок.
Использовать блок else предпочтительнее, чем добавлять дополнительный код в блок try. Это позволяет избежать случайного перехвата исключений, которые не были вызваны кодом, защищенным конструкцией try-except.
Pillow
Pillow является ответвлением Python Imaging Library. Эта библиотека подойдет для создания миниатюр, преобразования в различные форматы, наложения фильтров, вращения и отображения изображений и т.д. Pillow — идеальный вариант для пакетной обработки большого количества изображений.
Для большей наглядности приведу пример того, как вы можете отобразить изображение из Python-кода.
Pillow является ответвлением Python Imaging Library. Эта библиотека подойдет для создания миниатюр, преобразования в различные форматы, наложения фильтров, вращения и отображения изображений и т.д. Pillow — идеальный вариант для пакетной обработки большого количества изображений.
Для большей наглядности приведу пример того, как вы можете отобразить изображение из Python-кода.