pythonofff | Unsorted

Telegram-канал pythonofff - Python академия

7384

Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter

Subscribe to a channel

Python академия

Блок else в циклах.

Блок else в циклах for и while — это конструкция, которая позволяет выполнить определенный блок кода только в случае, если цикл завершился без использования оператора break. В цикле while условие проверяется перед каждой итерацией, и если оно истинно, то выполняется тело цикла. Цикл выполняется до тех пор, пока условие не станет ложным. В случае цикла for, он проходит по элементам последовательности (например, списку) и выполняет указанный блок кода для каждого элемента.

Давайте рассмотрим пример использования блока else в цикле for. Предположим, у нас есть функция find_needle, которая принимает на вход список haystack и элемент needle, и ищет needle в haystack. Мы хотим вывести сообщение, если элемент needle не найден в haystack. Для этого мы можем использовать цикл for для прохода по элементам haystack и проверки на равенство с needle. Если элемент найден, мы выводим сообщение и прерываем цикл с помощью оператора break. Если цикл завершается без прерывания, то выполняется блок else.


def find_needle(haystack, needle):
for item in haystack:
if item == needle:
print("Needle found!")
break
else:
print("Needle not found in haystack.")


В данном примере, если элемент needle найден в haystack, то будет выведено сообщение «Needle found!». Если же элемент needle не найден, то будет выполнен блок else и выведено сообщение «Needle not found in haystack.». Это позволяет нам выполнить определенные действия в зависимости от результата поиска элемента в списке.

Таким образом, блок else в циклах for и while предоставляет удобный способ выполнения действий, которые должны произойти только в случае, если цикл завершился успешно, без дополнительных проверок условий. Это помогает улучшить читаемость и структуру кода, делая его более понятным и эффективным.


Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Ведем набор учеников 3-10 классов на новый учебный год!

Московская школа программистов - это не курсы, а школа с государственной лицензией, которая обучает детей IT с 2001 года. Мы сотрудничаем с МФТИ, НИУ ВШЭ, Яндекс и Физтехпарк

Что получит ребенок, в результате обучения:
- Участие и победы в олимпиадах всероссийского и международного уровня
- Поступление в престижные технические вузы России и работу в известных IT-компаниях: Apple, Google, Yandex, Nvidia и других
- Практику на реальных IT-проектах
- Усидчивость, целеустремленность и умение работать в команде
- Сдача ЕГЭ/ОГЭ на высокие баллы

Сейчас идет набор в виртуальный класс. В этом формате, дети в небольших группах обучаются с преподавателем онлайн в реальном времени.
Эффективно как очно.

Позаботьтесь о том, чтобы ребенок стал востребованным IT-специалистом!

Зарегистрироваться

#реклама 16+
vc.informatics.ru

О рекламодателе

Читать полностью…

Python академия

Создаём свой контекстный менеджер

Привет, в четверг на канале вышел небольшой пост про контекстные менеджеры. Сейчас разберём, как их можно реализовать.

В любом контекстном менеджере должны быть определены методы __enter__ и __exit__. В качестве примера создадим подобие уже существующего open.

Метод __enter__ вызывается автоматически и возвращает объект файла. После того, как блок with заканчивается, также вызывается метод __exit__, который закрывает файл.

А более подробно мы рассказываем про эту тему в нашем курсе по продвинутым темам.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Использование time.sleep() в threading

Python Logging Cookbook является хорошим примером использования time.sleep(). Модуль логирования logging является потоко-безопасным, поэтому в данном примере он будет полезнее, чем операторы print().

Здесь для создания двух потоков используется модуль Python threading. Также создается объект входа, что будет вводить threadName в stdout. Затем начинаются оба потока и инициируется цикл для каждого входа из главного потока. Для фиксирования пользователя используется KeyboardInterrupt при нажатии ^Ctrl+C.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

.

Пожалуйста, не игнорируйте наше приглашение!

Сегодня мы хотим поделиться полезной подборкой каналов, которые могут быть вам полезными.

Скорее выбирайте категорию:
Срок действия приглашений всего 1 час!

✅Вяжем шапки,варежки,свитера - t.me/+Hdmk0q50F2pkZTQy

✅АМИГУРУМИ-Вяжем игрушки- t.me/+VmvP1ECGDHxkODA6

✅ Вязание(видео-уроки) - t.me/+m6L00g4STpszYWJi

✅Вяжем детям- t.me/+ksSjU7lzERw0MzYy

✅Вязание для новичков- t.me/+0sfy52JoKXExODZi

Вяжем носочки- t.me/+HFXLXcKLa0cwMWMy

Вязание крючком- t.me/+uPHYFp-PVuFkOTIy

Вязание спицами- t.me/+9hwOHqLS0VA3ZjRi

Узоры крючком- t.me/+DL6dsn4DQGsyNTRi

Узоры спицами- t.me/+iwAtESzRlnw2ZjAy

Схемы вязания- t.me/+wMa55NfPqWoxOWVi

Бесплатные выкройки, уроки шитья - t.me/+NDrsreeCCEIwM2Qy

Шитье для новичков- t.me/+472nw5vr3b05ZDgy

Узнать больше

#реклама
О рекламодателе

Читать полностью…

Python академия

Хеширование паролей Python
Для Python 3.x

Здесь пароли будут хешироваться для последующего сохранения в базе данных.

Тут мы будем использовать salt. salt является случайной последовательностью, добавленной к строке пароля перед использованием хеш-функции.

salt используется для предотвращения перебора по словарю (dictionary attack) и атак радужной таблицы (rainbow tables attacks).

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Функции высшего порядка в Python

Функции высшего порядка в Python позволяют улучшить структуру кода, делая его более понятным и гибким. Они позволяют передавать функции как аргументы в другие функции и возвращать функции как результат выполнения другой функции. Такой подход делает код более модульным и упрощает его поддержку и расширение.

Пример использования функций высшего порядка — это создание функции, которая принимает другую функцию в качестве аргумента. Например, мы можем создать функцию, которая принимает функцию для преобразования элементов списка. Затем мы можем передать эту функцию в качестве аргумента и применить ее к каждому элементу списка. Это позволяет нам легко изменять способ преобразования элементов без изменения основного кода.


def apply_function_to_list(func, lst):
return [func(x) for x in lst]

def square(x):
return x * x

numbers = [1, 2, 3, 4, 5]
squared_numbers = apply_function_to_list(square, numbers)
print(squared_numbers) # Output: [1, 4, 9, 16, 25]



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

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

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Поиск подстроки в строке

Pегулярное выражение — это строка, задающая шаблон поиска подстрок в тексте. В Python есть встроенный модуль, позволяющий работать с регулярными выражениями, — re, который содержит функцию search. Она позволит вам найти подстроку в строке

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Декораторы в Python

Декораторы в Python — это мощный инструмент, который позволяет изменять поведение функций или классов без изменения их исходного кода. Они позволяют добавлять дополнительную функциональность к уже существующим объектам, делая код более читаемым и поддерживаемым. Декораторы можно рассматривать как функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию, обычно с расширенным или измененным поведением.

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



import time

def timer_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Time taken to execute {func.__name__}: {end_time - start_time} seconds")
return result
return wrapper

@timer_decorator
def some_function():
# some code here
pass

some_function()


В приведенном примере мы создали декоратор timer_decorator, который измеряет время выполнения целевой функции и выводит результат. Затем мы применили этот декоратор к функции some_function с помощью символа @. При вызове some_function декоратор автоматически добавляет логику измерения времени выполнения, не изменяя саму функцию.

Использование декораторов позволяет избежать дублирования кода и упрощает поддержку и анализ программы. Они также улучшают читаемость кода, поскольку дополнительная логика выносится из основной функции. Декораторы являются важной частью Python и позволяют разработчикам создавать более гибкие и масштабируемые приложения.


Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Форматирование данных с помощью pprint

Модуль pprint из стандартной библиотеки Python предоставляет разработчикам удобный способ вывода сложных и вложенных объектов в более читаемом виде. В отличие от стандартной функции print, pprint автоматически форматирует данные для удобства восприятия.

Когда вы пытаетесь вывести на печать крупный или сложно-структурированный объект с помощью print, результат может быть трудночитаемым из-за отсутствия форматирования. В таких случаях модуль pprint становится настоящим must-have инструментом для разработчиков, работающих с нетривиальными структурами данных.

Пример использования pprint:


import pprint

data = {'name': 'John', 'age': 30, 'city': 'New York', 'hobbies': ['reading', 'coding', 'hiking']}
pprint.pprint(data)


В результате выполнения данного кода вы увидите словарь data в удобочитаемом формате, который автоматически отформатировал модуль pprint. Это значительно облегчает работу с большими и сложными структурами данных в Python.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Фильтры Pillow: NEAREST, BILINEAR, BICUBIC

Библиотека Pillow (Python Imaging Library) предоставляет различные фильтры для обработки изображений. Один из параметров, который можно использовать при повороте изображения, — это resample. Этот параметр позволяет выбрать определенный фильтр, который будет применяться при изменении размера изображения. В Pillow доступны три основных фильтра: NEAREST (ближайший сосед), BILINEAR и BICUBIC.

Фильтр NEAREST является фильтром по умолчанию и работает быстро, но может привести к пикселизации и потере деталей при увеличении изображения. Фильтр BILINEAR обеспечивает более плавное увеличение и улучшенное качество по сравнению с NEAREST. Фильтр BICUBIC является наиболее точным и обеспечивает наилучшее качество изображения, сохраняя детали и сглаживая цветовые переходы.


from PIL import Image

img = Image.open('image.jpg')
resized_img = img.resize((width, height), resample=Image.BICUBIC)
resized_img.show()


Использование фильтра BICUBIC позволяет улучшить четкость изображения и сохранить детали при изменении размера. Например, если на изображении присутствуют тонкие линии или текст, то фильтр BICUBIC поможет сделать их более четкими и улучшить общее качество изображения. При этом фильтры BILINEAR и NEAREST также могут быть полезны в зависимости от конкретной задачи и требований к изображению.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Как удалить элемент массива в Python?

Вы можете использовать .remove() метод, чтобы удалить нужный элемент из массива на Python

arr = ["тест", "тест 1", "тест 2"]
arr.remove("тест 2")
# Вывод: ['тест', 'тест 1']
print(arr)

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Подборка Telegram каналов для программистов

Системное администрирование 📌
/channel/sysadmin_girl Девочка Сисадмин
/channel/srv_admin_linux Админские угодья
/channel/linux_srv Типичный Сисадмин

/channel/linux_odmin Linux: Системный администратор
/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Английский 📌
/channel/UchuEnglish Английский с нуля

Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
/channel/Excel_lifehack

/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Читать полностью…

Python академия

Встроенная функция float в Python

Если строка, которую надо конвертировать в число, не является целым числом, здесь поможет метод float.

Float также можно использовать для преобразования целых чисел в числа с плавающей запятой.

В Python 2 такое преобразование необходимо, но в Python 3 целочисленное деление больше не является чем-то особенным (если вы специально не используете оператор «//»). Поэтому больше не нужно использовать float для этой цели, теперь float(x)/y можно легко заменить на x/y.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Простой веб-фреймворк

На сегодняшний день упрощенным вариантом веб-фреймворка WSGI для Python, является Bootle.

Это своего рода файловый модуль в единственном числе не имеющий сторонних библиотек, кроме стандартной Python.

Модуль Bootle вполне реализует себя в работах как с малыми, так и большими проектами, хотя его функционал состоит не из самых обширных возможностей: обработка форм, routing, POST-routing, сервер и cookies.

Для более точного рассмотрения результата, достаточно запустить данный модуль, прописать пять строк кода и перейти по адресной строке в браузере: localhost:5000/hello/world

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Библиотека Numpy

При создании массивом мы получаем тип ndarray.

Рассмотрим наиболее часты атрибуты (не методы!) применимые к массивам:

ndim - число измерений (чаще их называют "оси") массива.

shape - размеры массива, его форма. Это кортеж натуральных чисел, показывающий длину массива по каждой оси. Для матрицы из n строк и m столбов, shape будет (n,m). Число элементов кортежа shape равно ndim.

size - количество элементов массива. Очевидно, равно произведению всех элементов атрибута shape.

dtype - объект, описывающий тип элементов массива

itemsize - размер каждого элемента массива в байтах.

data - буфер, содержащий фактические элементы массива. Обычно мы не используем этот атрибут, так как обращаться к элементам массива проще всего с помощью индексов.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

⁠Кэширование функций

Кэширование может сэкономить время, когда связанная с вводом или выводом функция периодически вызывается с одинаковыми аргументами. Раньше приходилось создавать свою реализацию, но в Python 3.2+ появился декоратор lru_cache, который позволяет нам быстро кэшировать и вскрывать возвращаемые значения функции.

Давайте реализуем калькулятор чисел Фибоначчи с использованием кэша. Советую попробовать запустить любую рекурсивную функцию с кэшированием и без него, прирост в скорости замечается сразу.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Крупнейший университет искусственного интеллекта

Приглашаем на бесплатный однодневный интенсив по AI!

Освой искусственный интеллект для профессионального роста: создавай нейросети, автоматизируй бизнес-задачи и зарабатывай на AI-решениях.

✨ 8 000+ студентов со всего мира

✨ 600+ AI-проектов, созданных студентами

✨ Сборная Университета — победители крупнейших AI-хакатонов России

✨ Стажировки в крупнейших компаниях России (РЖД, Ростелеком, РУДН, Совкомбанк, Самолет и другие)

✨ Трудоустраиваем выпускников в крупнейшие компании (Яндекс, ВТБ, Сбербанк, Роскосмос и другие)

Будем рады видеть тебя в наших рядах!

Узнать больше

#реклама 16+
neural-university.ru

О рекламодателе

Читать полностью…

Python академия

Python Requests анализ запроса

При составлении запроса стоит иметь в виду, что перед его фактической отправкой на целевой сервер библиотека requests выполняет определенную подготовку. Подготовка запроса включает в себя такие вещи, как проверка заголовков и сериализация содержимого JSON.

Если открыть .request, можно просмотреть PreparedRequest.

Проверка PreparedRequest открывает доступ ко всей информации о выполняемом запросе. Это может быть пейлоад, URL, заголовки, аутентификация и многое другое.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Как убрать табуляцию в python?

Вы можете использовать метод строки .replace()

lineWithTabulation = "\tLine with tabulation"
print(lineWithTabulation)

lineWithoutTabulation = lineWithTabulation.replace('\t', '')
print(lineWithoutTabulation)

# Вывод :
# Line with tabulation
# Line with tabulation


Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Получи грант на обучение в Центральном университете

Прояви себя, получи грант до 2,8 млн на обучение ИТ и бизнесу в вузе.

Для школьников 10-х и 11-х классов, СПО.

Подать заявку

#реклама
apply.centraluniversity.ru

О рекламодателе

Читать полностью…

Python академия

Хранение хеша и соли

Для хранения можно использовать методы JSON, SQL, CSV и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.

Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

📕Открытый урок для Python-разработчиков, инженеров, QA-специалистов и специалистов по Data Science

На открытом уроке 23 января в 20:00 мск мы изучим асинхронное взаимодействие в Python на примере RabbitMQ.

📗В результате мы:
- Поговорим про асинхронное взаимодействие в микросервисной архитектуре и асинхронное программирование в Python;
- Рассмотрим практический пример построения архитектуры приложения;
- Разберемся в преимуществах и недостатках такого подхода.

Спикер Панкрашов Дмитрий — ведущий разработчик в компании-партнере вендора СЭД "Директум", 5+ лет опыта в backend-разработке, работает с Python, PHP, .NET (C#), PostgreSQL.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cHzBf9

📙 Все участники открытого урока получат скидку на курс "Python Developer. Professional"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Python академия

Курс по frontend-разработке с junior до middle

Стань специалистом по frontend-разработке с помощью менторов. Оставь заявку!

Узнать больше

#реклама 16+
ykul.ru

О рекламодателе

Читать полностью…

Python академия

Здесь научат стильно одеваться с любыми формами!

"PLUS SIZE: Секреты Стиля" - ваш стильный компас!

Не важно, какой у вас размер, уверенность и стиль доступны каждому!👍

- Подбор модных образов, которые подчеркнут вашу уникальность. - t.me/+yvmDUxVA5GAyZjBi
- Секреты стиля и ухода, чтобы вы сияли. t.me/+yvmDUxVA5GAyZjBi
- Находки аксессуаров и одежды специально для вас. t.me/+yvmDUxVA5GAyZjBi

❤️Откройте для себя свои собственные секреты стиля!

👌Ссылка на канал t.me/+yvmDUxVA5GAyZjBi

Узнать больше

#реклама
О рекламодателе

Читать полностью…

Python академия

Проверка данных при помощи декораторов

Еще один полезный метод, который может быть реализован с помощью декораторов, заключается в проверке данных до запуска декорированной функции. Очень распространенный этому пример в веб-приложении — это аутентификация пользователя. Если задача проверки/аутентификации завершается неудачно, то декорированная функция не вызывается, и вместо нее появляется ошибка.

В данном примере, декоратор only_admins ищет HTTP заголовок X-Auth-Token во входящем запросе и затем проверяет, если он совпадает с секретным токеном администратора, который для простоты мы сделали константой.

Если нет заголовка токена, или если он есть, но не совпадает, то функция abort() из Flask выполняется для генерации ответа 401 и остановки дальнейших запросов. В противном случае запрос может пройти, вызвав при этом декорированную функцию.

Обратите внимание, как в примере функции представления admin_route() используются декораторы app.route и only_admins. Это называется цепью декораторов.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Проверка прав доступа через декораторы

Распространенным шаблоном при работе с веб-приложениями является проверка есть ли у клиента разрешение на выполнение запрашиваемого действия. Проверки включают получение значения из заголовка HTTP запроса (токен) или из cookie браузера, для идентификации клиента. Затем, когда клиент распознан, используется специальный метод для определения допустимых прав доступа у данного клиента.

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

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Фильтры NEAREST, BILINEAR и BICUBIC в Pillow

Параметр resample можно использовать для указания определенного фильтра, который будет использоваться при поворачивании изображения.

• Image.NEAREST (ближайший сосед / по умолчанию);
• Image.BILINEAR;
• Image.BICUBIC.

С помощью фильтра Image.BICUBIC детали изображения станут более четким, чем в случае использования фильтра по умолчанию Image.NEAREST.

Небольшие различия есть, но у данной картинки они не очень видны. Но, например фильтр Image.BILINEAR сделал картинку более гладкой.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Функции sleep() и time()

Чтобы понять смысл функции sleep(), разберём простой пример. Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep.

Сперва выводится первая строка, затем идёт функция sleep(), которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд.

Рассмотрим пример использования sleep() для создания промежутка времени. Мы используем функцию time(), чтобы узнать текущее время, и localtime(), чтобы получить текущие дату и время в конкретной местности. Кроме того, есть функция strftime() («string from time»), которая возвращает время в виде строки в указанном формате.

В результате интервал между двумя моментами времени составил две секунды.

Подписывайтесь на канал 👉@pythonofff

Читать полностью…

Python академия

Как удалить строку из файла в Python?

filename = "test.txt"

delete_string = "строка 2"
lines = []
with open(filename, 'r') as file:
for line in file:
if line.strip() != delete_string:
lines.append(line)

with open(filename, "w") as file:
file.writelines(lines)

Подписывайтесь на канал 👉@pythonofff

Читать полностью…
Subscribe to a channel