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
Давайте создадим мини-приложение с использованием библиотеки 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 🤖
Поговорим о библиотеке tinytag.

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

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

bash
pip install tinytag


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

python
from tinytag import TinyTag

tag = TinyTag.get('path_to_your_audio_or_video_file.mp3')

print('Artist:', tag.artist)
print('Album:', tag.album)
print('Title:', tag.title)
print('Track Number:', tag.track)
print('Genre:', tag.genre)
print('Duration in seconds:', tag.duration)


Этот код извлекает и выводит основную мета-информацию из аудиофайла.

tinytag поддерживает множество форматов аудио и видео, включая MP3, OGG, OPUS, WMA, FLAC, WAV и многие другие.

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

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

pyfiglet преобразует текст в ASCII-искусство с использованием шрифтов в стиле "figlet". Это может быть веселым и интересным способом представить текст в командной строке или других текстовых интерфейсах.

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

bash
pip install pyfiglet


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

python
import pyfiglet

ascii_art = pyfiglet.figlet_format("Hello, World!", font="slant")
print(ascii_art)


Когда вы запустите этот код, вы увидите слова "Hello, World!" в стилизованном виде, созданном с использованием шрифта "slant".

Вы можете использовать разные шрифты, которые доступны в pyfiglet. Чтобы узнать список доступных шрифтов, используйте:

python
import pyfiglet

fonts = pyfiglet.Figlet().getFonts()
print(fonts)


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

Подпишись 👉🏻 @KodduuPython 🤖
Рассмотрим библиотеку faker.

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

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

bash
pip install faker


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

python
from faker import Faker

fake = Faker()

print("Name:", fake.name())
print("Address:", fake.address())
print("Email:", fake.email())
print("Text:", fake.text())
print("Date of Birth:", fake.date_of_birth())

# Если вы хотите данные на конкретном языке:
fake_ru = Faker('ru_RU')
print("Russian Name:", fake_ru.name())


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

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

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

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

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

bash
pip install asciimatics


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

Создадим простую анимацию "звездного неба":

python
from asciimatics.effects import Stars
from asciimatics.renderers import ColourImageFile
from asciimatics.scene import Scene
from asciimatics.screen import Screen

def demo(screen):
effects = [
Stars(screen, (screen.width + screen.height) // 2)
]
screen.play([Scene(effects, -1)], stop_on_resize=True)

Screen.wrapper(demo)


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

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

Подпишись 👉🏻 @KodduuPython 🤖
👍2
Рассмотрим библиотеку art.

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

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

bash
pip install art


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

python
import art

# Создание текстового искусства
text_art = art.text2art("Hello")
print(text_art)

# Создание символьного изображения
symbol_art = art.art("butterfly")
print(symbol_art)

# Получение списка всех доступных стилей и изображений
all_fonts = art.get_fonts()
all_arts = art.ART_NAMES
print("Available fonts:", all_fonts)
print("Available arts:", all_arts)


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

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