Kodduu Python
1.07K subscribers
317 photos
28 videos
191 links
Научись программировать на Python на интересных примерах

Самый быстрый курс https://stepik.org/a/187914
Самый нескучный курс https://stepik.org/a/185238

Во вопросам сотрудничества: @AlexErf
Download Telegram
Как насчет мини-игры "Поймай комету"? В этой игре игроку нужно угадывать позицию кометы на основе ее предыдущих местоположений.

Пример на Python:

python
import random

class Comet:
def __init__(self, size):
self.size = size # размер игрового поля
self.position = self.random_position() # начальное положение кометы

def random_position(self):
return random.randint(0, self.size - 1)

def move(self):
# двигаем комету в случайном направлении
direction = random.choice([-1, 1])
new_position = self.position + direction
# если комета выходит за пределы поля, двигаем ее в обратном направлении
if new_position < 0 or new_position >= self.size:
direction = -direction
self.position += direction

if __name__ == "__main__":
comet = Comet(10)
guesses = 3

print(f"Комета находится где-то на поле размером {comet.size}.")

while guesses > 0:
print(f"У вас осталось попыток: {guesses}")
guess = int(input("Угадайте позицию кометы (0-9): "))

comet.move()

if guess == comet.position:
print("Вы угадали! Вы поймали комету!")
break
else:
print("Вы промахнулись!")
guesses -= 1

if guesses == 0:
print(f"Вы проиграли! Комета была на позиции {comet.position}.")

В этой игре комета случайным образом движется по игровому полю размером 10. Игрок пытается угадать позицию кометы, имея только 3 попытки. Каждый раз, когда игрок делает попытку, комета двигается на одну позицию влево или вправо.

Цель игры - угадать текущее местоположение кометы с ограниченным числом попыток.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим простой космический калькулятор, который может вычислять расстояние между двумя планетами на основе их средних расстояний от Солнца.

python
class Planet:
def __init__(self, name, distance_from_sun):
self.name = name
self.distance_from_sun = distance_from_sun # среднее расстояние от Солнца в миллионах километров

class SpaceCalculator:
def __init__(self):
self.planets = {
"Меркурий": Planet("Меркурий", 57.9),
"Венера": Planet("Венера", 108.2),
"Земля": Planet("Земля", 149.6),
"Марс": Planet("Марс", 227.9),
"Юпитер": Planet("Юпитер", 778.5),
"Сатурн": Planet("Сатурн", 1427),
"Уран": Planet("Уран", 2871),
"Нептун": Planet("Нептун", 4498)
}

def calculate_distance(self, planet1_name, planet2_name):
planet1 = self.planets.get(planet1_name)
planet2 = self.planets.get(planet2_name)

if not planet1 or not planet2:
return "Одна из планет не найдена."

distance = abs(planet1.distance_from_sun - planet2.distance_from_sun)
return f"Расстояние между {planet1_name} и {planet2_name} составляет {distance} млн км."

if __name__ == "__main__":
calculator = SpaceCalculator()

planet1 = input("Введите имя первой планеты: ")
planet2 = input("Введите имя второй планеты: ")

print(calculator.calculate_distance(planet1, planet2))


При выполнении этого кода, пользователю будет предложено ввести названия двух планет, и затем будет выведено расстояние между этими планетами. Код учитывает только средние расстояния от Солнца и предполагает, что планеты находятся на одной линии, что упрощает вычисления. В реальности планеты могут находиться на разных сторонах Солнца, что увеличит или уменьшит реальное расстояние между ними.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим симулятор солнечной системы, который будет отображать текущее положение планет вокруг Солнца с течением времени. Мы будем использовать библиотеку matplotlib для визуализации.

Прежде всего, вам потребуется установить matplotlib, если у вас его еще нет:

bash
pip install matplotlib


Теперь давайте создадим симулятор:

python
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import math

class Planet:
def __init__(self, name, distance_from_sun, orbital_period):
self.name = name
self.distance_from_sun = distance_from_sun
self.orbital_period = orbital_period

def position(self, day):
"""Вычисление положения планеты по заданному дню."""
angle = (day % self.orbital_period) * (2 * math.pi) / self.orbital_period
x = self.distance_from_sun * math.cos(angle)
y = self.distance_from_sun * math.sin(angle)
return x, y

class SolarSystem:
def __init__(self):
self.planets = [
Planet("Меркурий", 57.9, 88),
Planet("Венера", 108.2, 225),
Planet("Земля", 149.6, 365),
Planet("Марс", 227.9, 687),
Planet("Юпитер", 778.5, 4332),
Planet("Сатурн", 1427, 10759),
Planet("Уран", 2871, 30687),
Planet("Нептун", 4498, 60190)
]

def plot(self, day):
fig, ax = plt.subplots(figsize=(10, 10))
ax.set_xlim(-5000, 5000)
ax.set_ylim(-5000, 5000)

# Рисуем Солнце в центре
ax.scatter(0, 0, s=200, c='yellow', label="Солнце")

for planet in self.planets:
x, y = planet.position(day)
ax.scatter(x, y, label=planet.name)

ax.legend()
plt.show()

if __name__ == "__main__":
solar_system = SolarSystem()
day = int(input("Введите день (0 - бесконечность): "))
solar_system.plot(day)


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

Учтите, что это упрощенная модель и для более точной симуляции потребуются более сложные расчеты и другие параметры.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим небольшую программу, которая будет представлять каталог основных частиц физики элементарных частиц и их основные свойства. Это будет текстовый интерфейс, в котором пользователь может запросить информацию о различных частицах.

python
class Particle:
def __init__(self, name, mass, charge, description):
self.name = name
self.mass = mass # в гигаэлектронвольтах/c^2
self.charge = charge # в единицах элементарного заряда
self.description = description

class ParticleCatalog:
def __init__(self):
self.particles = {
"фотон": Particle("фотон", 0, 0, "Фотон — бесмассовая частица, квант электромагнитного поля."),
"бозон Хиггса": Particle("бозон Хиггса", 125.1, 0, "Бозон Хиггса — элементарная частица, предсказанная теорией для объяснения механизма приобретения массы другими элементарными частицами."),
"электрон": Particle("электрон", 0.511, -1, "Электрон — элементарная частица, имеющая отрицательный заряд и участвующая во многих электромагнитных взаимодействиях.")
}

def display_particle_info(self, name):
particle = self.particles.get(name.lower())
if not particle:
return "Частица не найдена."
return f"Имя: {particle.name}\nМасса: {particle.mass} ГэВ/c^2\nЗаряд: {particle.charge}е\nОписание: {particle.description}"

if __name__ == "__main__":
catalog = ParticleCatalog()

while True:
particle_name = input("\nВведите название частицы (или 'выход' для завершения): ")

if particle_name.lower() == "выход":
break

print(catalog.display_particle_info(particle_name))


Этот код создает простой каталог элементарных частиц. Пользователь может вводить названия различных частиц (например, "фотон" или "бозон Хиггса"), чтобы получить основную информацию о них.

Заметьте, что это лишь базовая модель, и настоящий каталог частиц, такой как Стандартная модель, содержит гораздо больше деталей и частиц.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим программу, которая моделирует распространение фотонов в материале. Основываясь на принципе Комптона, мы будем считать, что фотон может рассеяться на свободном электроне, изменяя свою энергию и направление. В нашей упрощенной модели мы будем рассматривать только изменение направления фотона при рассеянии.

python
import random
import matplotlib.pyplot as plt

class Photon:
def __init__(self, angle=0):
self.angle = angle # угол движения фотона относительно оси X

def scatter(self):
"""Моделирует рассеяние фотона на электроне."""
delta_angle = random.uniform(-90, 90) # изменение угла после столкновения, в градусах
self.angle += delta_angle
if self.angle > 360:
self.angle -= 360
elif self.angle < 0:
self.angle += 360

def simulate_photon_path(steps):
photon = Photon()
x, y = [0], [0] # начальное положение фотона

for step in range(steps):
photon.scatter()
dx = 1 * (random.uniform(0.9, 1.1)) * (random.choice([1, -1])) # небольшое случайное изменение для моделирования реалистичного движения
dy = dx * (random.uniform(0.9, 1.1)) * (random.choice([1, -1]))

# обновляем координаты фотона на основе его угла
x.append(x[-1] + dx)
y.append(y[-1] + dy)

return x, y

if __name__ == "__main__":
steps = 100
x, y = simulate_photon_path(steps)

plt.figure(figsize=(10, 10))
plt.plot(x, y, '-o', label="Траектория фотона")
plt.legend()
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Моделирование пути фотона через материал")
plt.grid(True)
plt.show()


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

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

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим мини-приложение с использованием библиотеки pygame. Это будет простой пример, в котором пользователь может двигать квадрат на экране с помощью клавиш.

1. Установите pygame:

bash
pip install pygame


2. Затем используйте следующий код:

python
import pygame
from pygame.locals import *

# Инициализация pygame
pygame.init()

# Установка параметров дисплея
WIDTH, HEIGHT = 640, 480
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Двигайте квадрат!")

# Установка параметров квадрата
square_size = 50
x, y = (WIDTH - square_size) // 2, (HEIGHT - square_size) // 2
color = (0, 128, 255)
speed = 5

# Основной цикл игры
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False

keys = pygame.key.get_pressed()
if keys[K_UP]:
y -= speed
if keys[K_DOWN]:
y += speed
if keys[K_LEFT]:
x -= speed
if keys[K_RIGHT]:
x += speed

# Ограничение перемещения квадрата внутри окна
x = max(0, min(WIDTH - square_size, x))
y = max(0, min(HEIGHT - square_size, y))

screen.fill((255, 255, 255)) # очистка экрана
pygame.draw.rect(screen, color, (x, y, square_size, square_size))

pygame.display.flip()

pygame.quit()


Этот код создает простое окно с квадратом, который вы можете двигать с помощью клавиш-стрелок на вашей клавиатуре. Наслаждайтесь и экспериментируйте с разными параметрами!

Подпишись 👉🏻 @KodduuPython 🤖
1
Давайте попробуем создать небольшую визуализацию с помощью библиотеки matplotlib и numpy. Например, создадим анимированный график, где синусоида "двигается" с течением времени.

1. Установите необходимые библиотеки:

bash
pip install matplotlib numpy

2. Вот код для создания анимированного графика:

python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

# Установка параметров фигуры и осей
fig, ax = plt.subplots()
x = np.linspace(0, 2 * np.pi, 100)
line, = ax.plot(x, np.sin(x))

def animate(i):
line.set_ydata(np.sin(x + i / 10.0)) # Обновление значения Y
return line,

ani = animation.FuncAnimation(fig, animate, interval=50, blit=True)

plt.show()

Этот код создает анимированный график, где волна синусоиды "перемещается" влево со временем. Вы можете настраивать параметры, такие как скорость анимации, изменяя значение в функции animate или изменяя параметр interval в FuncAnimation.

Подпишись 👉🏻 @KodduuPython 🤖
Вот пример кода на Python, который использует библиотеку tkinter для создания графического интерфейса пользователя.

from tkinter import *

# Создание окна приложения
root = Tk()

# Добавление кнопок на окно
button1 = Button(root, text="Нажми меня!", command=lambda: print("Кнопка нажата!"))
button2 = Button(root, text="Отмена", command=root.destroy)

# Добавление текста на кнопки
button1.pack()
button2.pack()

# Добавление фонового цвета для кнопок
button1.configure(background="red")
button2.configure(background="blue")

# Добавление обработчика событий для кнопок
button1.bind("<Button-1>", lambda event: print("Кнопка нажата!"))
button2.bind("<Button-1>", lambda event: print("Кнопка нажата!"))

# Запуск цикла обработки событий
root.mainloop()

Этот код создает главное окно приложения с двумя кнопками и текстом "Нажми меня!" и "Отмена". Затем он добавляет обработчики событий для каждой кнопки, которые вызывают функцию print() при нажатии на кнопку. Функция print() выводит сообщение на экран. Наконец, функция mainloop() запускает бесконечный цикл обработки событий, который продолжает работать до тех пор, пока пользователь не закроет приложение.

Подпишись 👉🏻 @KodduuPython 🤖
Вот пример кода на Python, который использует библиотеку scipy для анализа данных:

import scipy.stats as stats

# Создание массива данных
data = np.array([[1, 2], [3, 4]])

# Анализ распределения данных
mean = stats.mean(data)
sd = stats.stdev(data)

# Вычисление стандартного отклонения и среднего значения
sd_mean = sd / mean
mean_sd = mean / sd_mean

# Вывод результатов
print("Среднее значение:", mean_sd)
print("Стандартное отклонение:", sd_mean)

Этот код создает массив данных data, содержащий два элемента. Затем он использует функцию mean() из библиотеки scipy для вычисления среднего значения массива. Аналогично, он использует функцию stdev() из той же библиотеки для вычисления стандартного отклонения массива. Результаты выводятся на экран.

Подпишись 👉🏻 @KodduuPython 🤖
Построение плана тренировок для триатлона — это сложный процесс, зависящий от множества переменных, таких как текущий уровень тренированности, доступное время для тренировок, цели и др. Для упрощения мы создадим базовый план, который улучшит текущие показатели.

Допустим, наша цель — улучшить текущие показатели на 5% за следующие 8 недель. План будет включать в себя 3 тренировки в неделю по каждому из видов спорта (бег, велосипед, плавание).

python
def training_plan(run_pace_10k, bike_speed_50k, swim_pace_100m):
# Рассчитываем целевые показатели для улучшения на 5%
target_run_pace_10k = run_pace_10k * 0.95
target_bike_speed_50k = bike_speed_50k * 1.05
target_swim_pace_100m = swim_pace_100m * 0.95

plan = {}

# План для бега
run_sessions = [
"Длительный бег с комфортным темпом.",
"Интервальные бега: 5x1000 м с темпом, быстрее текущего на 5%.",
"Восстановительный бег или прогулка."
]

# План для велосипеда
bike_sessions = [
"Длительная поездка с комфортным темпом.",
"Интервальная тренировка: 6x5 км с темпом, быстрее текущего на 5%.",
"Легкая поездка или тренировка на стационарном велосипеде."
]

# План для плавания
swim_sessions = [
"Плавание средней длительности с комфортным темпом.",
"Интервальное плавание: 10x100 м с темпом, быстрее текущего на 5%.",
"Техническая тренировка (упражнения на технику плавания)."
]

plan["Бег"] = run_sessions
plan["Велосипед"] = bike_sessions
plan["Плавание"] = swim_sessions

return plan

if __name__ == "__main__":
run_pace_10k = float(input("Введите ваш текущий темп на 10 км (в мин/км): "))
bike_speed_50k = float(input("Введите вашу среднюю скорость на 50 км (км/ч): "))
swim_pace_100m = float(input("Введите ваш текущий темп на 100 м плавания (в сек/100м): "))

plan = training_plan(run_pace_10k, bike_speed_50k, swim_pace_100m)

for discipline, sessions in plan.items():
print(f"\nТренировки для {discipline}:")
for session in sessions:
print(f"- {session}")


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

Подпишись 👉🏻 @KodduuPython 🤖
Рассмотрим интересную задачу определения "золотого разреза" числа.

Золотой разрез числа — это такое деление числа на две части, при котором отношение большей части к меньшей равно отношению всего числа к большей части.

Пусть a и b — две части числа (где a > b), и пусть x — исходное число. Тогда золотое разделение можно записать как:

a / b = x / a

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

Давайте напишем функцию, которая находит золотой разрез числа:

python
def golden_ratio_split(x):
phi = (1 + 5 ** 0.5) / 2
a = x / (phi + 1)
b = x - a
return a, b

if __name__ == "__main__":
number = float(input("Введите число для его 'золотого разреза': "))
part1, part2 = golden_ratio_split(number)

print(f"Золотой разрез числа {number}:")
print(f"Большая часть: {part1:.2f}")
print(f"Меньшая часть: {part2:.2f}")

Когда вы введете число, программа выдаст его "золотой разрез", разделив число в пропорции золотого сечения.

Подпишись 👉🏻 @KodduuPython 🤖
Написание стихов с использованием рифмы - это интересная задача. Для этой простой реализации мы будем использовать примитивный метод поиска рифмы на основе окончаний слов. На практике, для более точного определения рифмы, следует использовать более сложные алгоритмы или базы данных рифм.

Давайте напишем простой скрипт, который будет генерировать стих из предоставленного набора слов, основываясь на схеме рифмовки ABAB:

python
import random

def find_rhymes(word, word_list):
# Ищем слова с похожим окончанием (последние 2 буквы)
suffix = word[-2:]
rhymed_words = [w for w in word_list if w.endswith(suffix) and w != word]
return rhymed_words

def generate_poem(words):
if len(words) < 4:
return "Необходимо больше слов для генерации стиха!"

random.shuffle(words) # Перемешиваем слова
word_a = random.choice(words)

rhymes_for_a = find_rhymes(word_a, words)
if not rhymes_for_a:
return "Не удалось найти рифму для генерации стиха."

word_b = random.choice(rhymes_for_a)
words.remove(word_a)
words.remove(word_b)

word_c = random.choice(words)
rhymes_for_c = find_rhymes(word_c, words)

if not rhymes_for_c:
return "Не удалось найти рифму для генерации стиха."

word_d = random.choice(rhymes_for_c)

return f"{word_a}\n{word_c}\n{word_b}\n{word_d}"

if __name__ == "__main__":
words = input("Введите слова через пробел: ").split()
poem = generate_poem(words)
print("\nСгенерированный стих:")
print(poem)


Этот код позволит вам ввести список слов, а затем он сгенерирует стих на основе этих слов в формате рифмовки ABAB. Однако нужно понимать, что данный код работает на простом принципе поиска рифмы и может не всегда давать идеальные результаты.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим генератор случайных историй! Этот генератор будет создавать истории, используя разные фрагменты для начала, середины и конца рассказа.

python
import random

def generate_story():
# Фрагменты для начала рассказа
beginnings = [
"Однажды, в тёмной и таинственной джунглях,",
"В далеком царстве, за семью морями,",
"В городе, где никогда не светило солнце,"
]

# Фрагменты для середины рассказа
middles = [
"принцесса была похищена злым драконом,",
"маг нашёл древнюю книгу с заклинаниями,",
"кот по имени Барсик стал мэром города,"
]

# Фрагменты для конца рассказа
endings = [
"и тогда герой пришел и спас всех.",
"и они все жили долго и счастливо.",
"но никто не узнал об этом."
]

# Случайным образом выбираем начало, середину и конец
beginning = random.choice(beginnings)
middle = random.choice(middles)
ending = random.choice(endings)

# Соединяем все части вместе
story = f"{beginning} {middle} {ending}"
return story

if __name__ == "__main__":
story = generate_story()
print("Ваша история:")
print(story)


Когда вы запустите этот код, он сгенерирует уникальную историю, комбинируя разные части. Вы также можете легко добавить свои фрагменты, чтобы сделать истории более разнообразными!

Подпишись 👉🏻 @KodduuPython 🤖
Давайте рассмотрим библиотеку под названием fortuna, которая не так известна, как многие другие библиотеки Python. Она используется для генерации случайных данных.

Во-первых, убедитесь, что у вас установлена библиотека:
bash
pip install fortuna


Теперь давайте создадим простой пример генерации случайной даты с использованием fortuna.

python
import fortuna

def random_date_example():
random_date = fortuna.date() # Генерируем случайную дату
print(f"Случайная дата: {random_date}")

random_date_past = fortuna.date(past=True) # Генерируем случайную дату из прошлого
print(f"Случайная дата из прошлого: {random_date_past}")

random_date_future = fortuna.date(future=True) # Генерируем случайную дату из будущего
print(f"Случайная дата из будущего: {random_date_future}")

if __name__ == "__main__":
random_date_example()


Это просто начало возможностей, которые предоставляет fortuna. Вы также можете генерировать случайные имена, адреса, тексты и многое другое!

Подпишись 👉🏻 @KodduuPython 🤖
👍3
Воспользуемся библиотекой fortuna для генерации полной случайной личности:

Прежде всего, убедитесь, что у вас установлена библиотека:
bash
pip install fortuna


Теперь давайте напишем код:

python
import fortuna

def generate_random_person():
name = fortuna.full_name()
birth_date = fortuna.date(past=True, after=1900)
gender = fortuna.random_element(["Male", "Female", "Other"])
address = fortuna.address()
email = fortuna.email()
phone_number = fortuna.phone_number()

return {
"Name": name,
"Birth Date": birth_date,
"Gender": gender,
"Address": address,
"Email": email,
"Phone Number": phone_number
}

if __name__ == "__main__":
person = generate_random_person()
for key, value in person.items():
print(f"{key}: {value}")


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

Подпишись 👉🏻 @KodduuPython 🤖
2
Давайте рассмотрим библиотеку под названием "Antigravity", которая на самом деле является пасхальным яйцом в Python и используется преимущественно для развлечения.

python
import antigravity


Когда вы запустите этот код, ваш браузер откроет комикс xkcd, который шутит о этой "функции" Python.

Для более серьезного примера давайте рассмотрим библиотеку "howdoi", которая предоставляет ответы на кодированные вопросы прямо из командной строки, используя информацию из Stack Overflow.

Установите библиотеку:

pip install howdoi


Используйте ее в коде:

python
import howdoi

query = "how do I convert a list to a string in python"
answer = howdoi.howdoi(query)
print(answer)


Этот код вернет ответ на ваш вопрос, используя данные из Stack Overflow.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте рассмотрим ещё одну необычную библиотеку: pywhatkit.

pywhatkit предоставляет набор функций для различных интересных задач, таких как отправка WhatsApp-сообщений, просмотр истории поиска на YouTube и даже рисование рукописного текста.

1. Установите библиотеку:

bash
pip install pywhatkit


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

Отправка WhatsApp-сообщения:
(Для этого требуется открывать браузер, поэтому убедитесь, что веб-версия WhatsApp в вашем браузере настроена)

python
import pywhatkit as kt

# отправка сообщения по WhatsApp
# формат времени: (часы, минуты)
kt.sendwhatmsg("+1234567890", "Привет, это сообщение отправлено с помощью pywhatkit!", 15, 30)


Превращение текста в рукописный текст:

python
import pywhatkit as kt

kt.text_to_handwriting("Привет, мир!", save_to="handwritten.png")


Поиск и просмотр YouTube-видео:

python
import pywhatkit as kt

kt.playonyt("Python tutorial")


Этот код найдет и начнет проигрывать первый ролик на YouTube, который соответствует запросу "Python tutorial".

Это только некоторые из функций, которые предоставляет pywhatkit. Обратите внимание, что при использовании некоторых функций этой библиотеки могут быть дополнительные требования, такие как настройка веб-версии WhatsApp для отправки сообщений.

Подпишись 👉🏻 @KodduuPython 🤖
🏆2👍1
Давайте рассмотрим библиотеку imagehash. Эта библиотека позволяет вычислять "хэши" изображений, что может быть полезно для определения похожих изображений без сравнения каждого пикселя.

1. Установка:

bash
pip install ImageHash


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

Вычисление хэша для изображения:

python
from PIL import Image
import imagehash

# Открытие изображения
image_path = "path_to_your_image.jpg"
image = Image.open(image_path)

# Вычисление dHash
hash_val = imagehash.dhash(image)

print(hash_val)


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

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

Подпишись 👉🏻 @KodduuPython 🤖
11
Давайте рассмотрим библиотеку fortuna.

fortuna — это генератор случайных чисел и утилита для монте-карло, которая основана на методе зиггурата для более быстрой генерации случайных чисел по сравнению с стандартной библиотекой Python.

1. Установка:

bash
pip install fortuna


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

python
import fortuna

# Генерация случайного целого числа от 1 до 100
random_int = fortuna.randint(1, 100)
print(f"Random integer: {random_int}")

# Генерация случайного числа с плавающей запятой от 0 до 1
random_float = fortuna.random()
print(f"Random float: {random_float}")

# Генерация случайного булева значения
random_bool = fortuna.boolean()
print(f"Random boolean: {random_bool}")

# Выбор случайного элемента из списка
sample_list = ["apple", "banana", "cherry"]
choice = fortuna.choice(sample_list)
print(f"Random choice from list: {choice}")


Эти примеры показывают, как можно использовать fortuna для генерации различных случайных значений. Библиотека предлагает быструю генерацию случайных чисел, которая может быть полезной в некоторых приложениях, требующих интенсивной генерации случайных чисел.

Подпишись 👉🏻 @KodduuPython 🤖
👍2
Давайте рассмотрим библиотеку под названием colorthief.

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

1. Установка:

bash
pip install colorthief


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

python
from colorthief import ColorThief

color_thief = ColorThief('path_to_your_image.jpg')

# Получить главный цвет изображения
dominant_color = color_thief.get_color(quality=1)
print(f"Dominant color: {dominant_color}")

# Получить палитру цветов из изображения
color_palette = color_thief.get_palette(color_count=6)
print(f"Color palette: {color_palette}")


В этом коде get_color() возвращает доминирующий цвет изображения, в то время как get_palette() возвращает список цветов, представляющих основные оттенки изображения.

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

Подпишись 👉🏻 @KodduuPython 🤖