Одной из главных возможностей библиотеки PIL является возможность создания и редактирования изображений. С ее помощью можно создавать новые изображения с определенными размерами и цветовыми схемами, а также редактировать существующие изображения. Например, можно добавлять текст, рисовать графические примитивы, наносить различные эффекты и многое другое.
Библиотека PIL также предоставляет возможность обработки изображений в пакетном режиме. Это означает, что можно применять определенные операции к нескольким изображениям одновременно. Например, можно изменить размер и применить фильтр ко множеству изображений, что сэкономит время и упростит процесс обработки большого количества изображений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🔥1
def add_item(lst):
lst.append(100)
my_list = [1, 2, 3]
add_item(my_list)
print(my_list) # [1, 2, 3, 100]
Изменяемые типы:
list, dict, set, bytearrayНеизменяемые:
int, float, str, tuple, frozenset• работе с функциями (аргументы по ссылке),
• проектировании безопасных API,
• использовании словарей и множеств (ключи должны быть immutable).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3❤2
zeros((n, m)) - создает массив нулей с размером n x m.>>> np.zeros((3, 2))
array([[0., 0.],
[0., 0.],
[0., 0.]])
ones((n, m)) - создает массив единиц с размером n x m.>>> np.ones((2, 3))
array([[1., 1., 1.],
[1., 1., 1.]])
>>> np.ones((2, 2), dtype=np.int16)
array([[1, 1],
[1, 1]], dtype=int16)
empty() - создает массив без заполнения. Исходное содержимое случайно и зависит от состояния памяти на момент создания массива (мусор, что в ней хранится).>>> np.empty((2,2))
array([[5.e-324, 0.e+000],
[0.e+000, 5.e-324]])
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2❤1🤔1
.gitignore:# Кэш компиляции Python
__pycache__/
*.py[cod]
# Виртуальное окружение
venv/
env/
# Файлы зависимостей и IDE
*.log
*.sqlite3
*.env
*.DS_Store
# VS Code / PyCharm и прочее
.vscode/
.idea/
# Файлы зависимостей
pip-wheel-metadata/
*.egg-info/
dist/
build/
— Не лить в гит лишнее
— Исключить локальные настройки и окружение
— Сохранить проект чистым и переносимым
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥3
Что выдаст код выше❔
Anonymous Quiz
17%
True True
11%
False False
30%
True False
11%
False True
31%
Error
🤔6🤨2🔥1🤓1
В Python при приведении к bool любая непустая строка(даже если это пробелы) оценивается как True, а комплексный ноль - False
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2👾2
from dataclasses import dataclass, replace
@dataclass
class User:
name: str
age: int
user1 = User("Alice", 30)
user2 = replace(user1, age=35)
print(user2) # User(name='Alice', age=35)
- Можно изменять объект, не модифицируя оригинал.
- Работает быстрее, чем
deepcopy().- Удобно для
immutable объектов.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤1
Для начала давайте создадим простой график. Для этого нам понадобятся данные, которые мы будем отображать на графике. В примере ниже мы создадим массив данных для точек x и y:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.show()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🔥3
set1 = {1, 2, 3}
set2 = {4, 5, 6}
# Проверяем, не имеют ли два множества общих элементов
result = set1.isdisjoint(set2)
print(result) # Выводит True, поскольку множества не имеют общих элементовЕсли бы у нас было два множества с общими элементами, метод isdisjoint() вернул бы False:
set3 = {1, 2, 3}
set4 = {3, 4, 5}
result = set3.isdisjoint(set4)
print(result) # Выводит False, так как множества имеют общий элемент (число 3)-Простота и удобство проверки наличия общих элементов: Метод isdisjoint() предоставляет простой способ быстрой проверки наличия общих элементов между двумя множествами.
-Эффективность: Поиск общих элементов выполняется эффективно благодаря внутренней реализации Python для множеств.
Этот метод особенно полезен, если вам нужно определить, существует ли пересечение между двумя множествами перед выполнением других операций.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3❤2
Простое тестирование и сравнение классических алгоритмов (KNN, SVD, SlopeOne) на ваших данных с акцентом на точность предсказаний.
from surprise import Dataset, KNNBasic
from surprise.model_selection import cross_validate
# Загрузка встроенного датасета MovieLens
data = Dataset.load_builtin('ml-100k')
# Обучение KNN-модели
algo = KNNBasic()
cross_validate(algo, data, measures=['RMSE'], cv=5, verbose=True)
Чистый API для экспериментов с рекомендательными алгоритмами без сложной инфраструктуры — идеально для исследований и прототипирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥1
user_input = "42a"
try:
number = int(user_input)
print("Число:", number)
except ValueError:
print("Ошибка: это не целое число")
Ошибка: это не целое число
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3👌1
# Установка библиотеки
!pip install fugue
# Импорт необходимых модулей
from fugue import FugueEngine
from fugue.spark import SparkExecutionEngine
# Пример обработки данных
def process_data(df):
return df.groupby("category").agg({"value": "sum"})
# Инициализация движка
engine = SparkExecutionEngine()
# Чтение данных
data = [
{"category": "A", "value": 10},
{"category": "B", "value": 20},
{"category": "A", "value": 30},
]
# Обработка данных
result = engine.run(data, process_data)
# Вывод результата
print(result)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🔥1
from TermTk import TTk, TTkButton
def on_click():
print("Button clicked!")
root = TTk.TTk()
btn = TTkButton(text="Click me!", pos=(10,5), size=(20,3))
btn.clicked.connect(on_click)
root.mainloop()
Полноценный набор UI-компонентов (CheckBox, RadioButton, ScrollArea) + поддержка "тёмной/светлой" тем прямо в терминале.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥1