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
Воспользуемся библиотекой 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
В Python множество интересных и редких библиотек, которые можно использовать для создания уникальных проектов. В этом примере мы будем использовать библиотеку sh для работы с системными командами и art для генерации ASCII-артов.

Убедитесь, что у вас установлены обе библиотеки перед тем как запускать пример кода:

bash
pip install sh art


Теперь создадим небольшой скрипт, который генерирует ASCII-арт из текста, а затем отображает его в терминале, используя команду cat.

python
import sh
from art import *

def display_ascii_art(text):
ascii_art = text2art(text, "block", chr_ignore=True)
with open('ascii_art.txt', 'w') as file:
file.write(ascii_art)
sh.cat('ascii_art.txt')

if __name__ == "__main__":
text = input("Введите текст для генерации ASCII-артов: ")
display_ascii_art(text)


Теперь, когда вы запустите этот скрипт и введете какой-то текст, он создаст файл ascii_art.txt с ASCII-артом вашего текста и отобразит его в терминале.

Примечание: Этот пример более интересен в Unix-подобных системах, так как библиотека sh позволяет вам взаимодействовать с системными командами прямо из Python. Библиотека art также весьма забавная и может быть использована для создания ASCII-артов для различных целей.

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

Сначала установите нужные библиотеки, выполнив команду:

bash
pip install pyforest pandas_alive


Теперь создадим пример скрипта, который создает анимированный барплот из датасета:

python
import pyforest
import pandas_alive

# Импортируем данные
data_url = 'https://github.com/jackparmer/animated-bar-charts/raw/master/minard/cities.csv'
cities = pd.read_csv(data_url)

# Обработка данных для создания анимированной визуализации
cities['date'] = pd.to_datetime(cities['date'])
cities.set_index('date', inplace=True)

# Создание анимированного барплота
animated_barplot = cities.plot_animated(filename='animated_barplot.gif')

# Если хотите просмотреть анимацию в Jupyter Notebook
# animated_barplot


В этом примере мы импортируем данные из URL-адреса с помощью библиотеки pandas, преобразуем столбец даты в datetime объект, устанавливаем его в качестве индекса, и затем создаем анимированный барплот с помощью pandas_alive. Результат сохраняется в файл animated_barplot.gif.

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

Подпишись 👉🏻 @KodduuPython 🤖
Давайте рассмотрим ещё один интересный пример, используя библиотеку pydub для работы с аудиофайлами и speech_recognition для распознавания речи.

Сначала установите нужные библиотеки:

bash
pip install pydub SpeechRecognition


Для работы pydub вам также понадобится установить ffmpeg. После установки библиотек, воспользуйтесь следующим скриптом, чтобы конвертировать аудиофайл в текст:

python
from pydub import AudioSegment
import speech_recognition as sr

def audio_to_text(audio_file):
audio = AudioSegment.from_file(audio_file)
audio = audio.set_frame_rate(16000).set_channels(1) # Устанавливаем частоту дискретизации и количество каналов для распознавания речи

temp_file = "temp.wav"
audio.export(temp_file, format="wav")

recognizer = sr.Recognizer()
with sr.AudioFile(temp_file) as source:
audio_data = recognizer.record(source)
try:
text = recognizer.recognize_google(audio_data)
print(f"Распознанный текст: {text}")
except sr.UnknownValueError:
print("Google Speech Recognition не смог распознать аудио")
except sr.RequestError as e:
print(f"Не удалось запросить результаты у службы Google Speech Recognition; {e}")

if __name__ == "__main__":
audio_file = "your_audio_file.mp3" # замените на путь к вашему аудиофайлу
audio_to_text(audio_file)


В этом примере:
1. Мы используем pydub для загрузки аудиофайла и преобразования его параметров к формату, который подходит для speech_recognition.
2. Экспортируем аудио во временный файл формата wav.
3. Используем speech_recognition для распознавания речи из аудиофайла и вывода распознанного текста на экран.

Заметьте, что для успешного выполнения данного примера вам потребуется иметь доступ в Интернет, так как speech_recognition использует Google Web Speech API для распознавания речи.

Подпишись 👉🏻 @KodduuPython 🤖
3
В этот раз давайте рассмотрим пример кода с использованием библиотеки PyMuPDF для работы с PDF-файлами и pyttsx3 для преобразования текста в речь (TTS).

Сначала установите нужные библиотеки:

bash
pip install PyMuPDF pyttsx3


Теперь давайте создадим скрипт, который будет читать PDF-файл и преобразовывать его в аудио:

python
import pyttsx3
import PyMuPDF

def read_pdf_to_audio(pdf_path):
pdf_document = PyMuPDF.open(pdf_path)
engine = pyttsx3.init()

for page_number in range(len(pdf_document)):
page = pdf_document.loadPage(page_number)
page_text = page.getText()
engine.say(page_text)
engine.runAndWait()

pdf_document.close()
engine.stop()

if __name__ == "__main__":
pdf_path = "example.pdf" # Путь к вашему PDF-файлу
read_pdf_to_audio(pdf_path)


В этом скрипте:
1. Мы открываем PDF-файл с помощью библиотеки PyMuPDF.
2. Инициализируем движок TTS (Text-to-Speech) с помощью pyttsx3.
3. Проходимся по каждой странице PDF-файла, извлекаем текст с помощью метода getText и используем pyttsx3, чтобы прочитать его вслух.
4. Закрываем PDF-файл и останавливаем движок TTS после прочтения всего документа.

Этот пример показывает, как можно комбинировать различные библиотеки Python для создания интересных и полезных приложений, таких как автоматический синтез речи из PDF-файлов.

Подпишись 👉🏻 @KodduuPython 🤖
2
В этот раз давайте рассмотрим пример с использованием библиотеки streamlit для создания простого веб-приложения и beautifulsoup4 для парсинга HTML.

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

bash
pip install streamlit beautifulsoup4 requests


Теперь создадим простое веб-приложение, которое будет извлекать заголовки с веб-сайта:

python
import streamlit as st
import requests
from bs4 import BeautifulSoup

def fetch_headlines(url):
response = requests.get(url)
if response.status_code != 200:
st.write(f"Failed to retrieve the page: {response.status_code}")
return []

soup = BeautifulSoup(response.text, 'html.parser')
headlines = [item.text for item in soup.find_all('h1')]
return headlines

st.title("Headline Fetcher")

url = st.text_input("Enter a URL:", "https://example.com")

if url:
headlines = fetch_headlines(url)
if headlines:
st.write("Headlines:")
for idx, headline in enumerate(headlines, 1):
st.write(f"{idx}. {headline}")
else:
st.write("No headlines found.")

if __name__ == "__main__":
st.run()


Для запуска вашего веб-приложения, сохраните код в файле, например, app.py, и запустите его с помощью команды:

bash
streamlit run app.py


После запуска откройте указанный в терминале URL-адрес в своем веб-браузере. Вы увидите текстовое поле для ввода URL. Введите URL веб-сайта, и приложение извлечет и отобразит все заголовки (элементы h1) с этого веб-сайта.

Этот пример показывает, как можно создать простое веб-приложение для парсинга веб-страниц с использованием streamlit и beautifulsoup4.

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

python
from geopy.distance import geodesic

# Координаты городов (широта, долгота)
moscow_coords = (55.7558, 37.6176)
new_york_coords = (40.7128, -74.0060)

# Рассчитываем расстояние между Москвой и Нью-Йорком
distance = geodesic(moscow_coords, new_york_coords).kilometers

print(f"Расстояние между Москвой и Нью-Йорком составляет {distance:.2f} километров.")


Данный скрипт рассчитает и выведет расстояние между Москвой и Нью-Йорком. Библиотека geopy предоставляет простой и эффективный способ работы с географическими данными в Python.

Подпишись 👉🏻 @KodduuPython 🤖
1
Вот пример использования библиотеки textblob, которая может быть полезной для обработки текста и анализа настроения. В этом примере мы используем textblob для определения полярности и субъективности текста:

python
from textblob import TextBlob

# Некоторый текст для анализа
text = """Python is an amazing programming language.
I love working on projects using Python!"""

# Создание объекта TextBlob
blob = TextBlob(text)

# Полностью перевод текста на другой язык (например, на русский)
translated_blob = blob.translate(to="ru")
print(f"Переведенный текст: {translated_blob}")

# Анализ настроения каждого предложения в тексте
for sentence in blob.sentences:
print(f"Предложение: {sentence}")
print(f"Полярность: {sentence.sentiment.polarity}")
print(f"Субъективность: {sentence.sentiment.subjectivity}")
print()


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

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

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

python
from faker import Faker

fake = Faker()

# Генерация случайного имени
print(f"Имя: {fake.name()}")

# Генерация случайного адреса
print(f"Адрес: {fake.address()}")

# Генерация случайного текста
print(f"Текст: {fake.text()}")

# Генерация случайной даты
print(f"Дата: {fake.date()}")

# Генерация случайного времени
print(f"Время: {fake.time()}")

# И многое другое!


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

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

python
from pydantic import BaseModel, ValidationError, validator
from typing import List, Optional

class Address(BaseModel):
street: str
city: str
zip: str
country: Optional[str] = "USA"

@validator("zip")
def zip_length(cls, v):
if len(v) != 5:
raise ValueError('Zip code must be 5 digits')
return v

class Person(BaseModel):
name: str
age: int
email: str
address: Address
phone_numbers: List[str]

try:
person = Person(
name="John Doe",
age=25,
email="john.doe@example.com",
address={
"street": "123 Main St",
"city": "New York",
"zip": "12345"
},
phone_numbers=["123-456-7890"]
)
print(person.dict())
except ValidationError as e:
print(e.json())


В этом примере определены две модели данных: Address и Person. pydantic используется для валидации данных, которые передаются в Person, и обеспечивает, чтобы адрес содержал правильные поля и почтовый индекс имел правильную длину. Если данные невалидны, pydantic генерирует исключение ValidationError, которое можно легко перехватить и обработать.

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

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