Python на примерах
1.39K subscribers
411 photos
6 videos
145 links
Короткие уроки Python на примерах
Download Telegram
Перемешивание элементов списка с помощью shuffle

Хотите перемешать элементы списка в случайном порядке? Воспользуйтесь функцией shuffle() из библиотеки random. Но будьте внимательны: эта функция изменяет сам список, а не создает его копию.
🔥3
Пример создания собственного чат-бота на Python

Давайте создадим простого чат-бота, который будет отвечать на вопросы пользователей! Для этого мы используем библиотеку transformers, которая позволяет работать с большими языковыми моделями.

Пример кода:

from transformers import pipeline

def chatbot():
generator = pipeline('text-generation', model='gpt2')
while True:
user_input = input("Вы: ")
if user_input.lower() in ['выход', 'exit', 'quit']:
break
response = generator(user_input, max_length=50, num_return_sequences=1)
print(f"Бот: {response[0]['generated_text']}")

chatbot()


Это отличный способ создать личного бота для общения.
👍9👏1
Необязательные аргументы в Python можно задавать, присваивая им значения по умолчанию. Это позволяет вызывать функцию без указания всех параметров, что делает код более гибким и удобным. Например, если вы хотите задать значение по умолчанию для аргумента, но при этом иметь возможность его изменять при вызове функции — это именно тот случай.
👍5❤‍🔥1
Секреты генерации случайных мемов с помощью Python

Если вы хотите сделать мемы или создавать случайные изображения с текстом, можно легко сделать это с помощью Python! Используем библиотеку Pillow для наложения текста на изображение.

Пример кода:

from PIL import Image, ImageDraw, ImageFont

def generate_meme(image_path, text):
image = Image.open(image_path)
draw = ImageDraw.Draw(image)
font = ImageFont.load_default()
text_width, text_height = draw.textsize(text, font)
width, height = image.size
position = ((width - text_width) // 2, height - text_height - 10)

draw.text(position, text, font=font, fill="white")
image.show()

generate_meme("your_image.jpg", "Когда код работает с первого раза")


Этот код наложит текст на изображение, создавая идеальный мем.
🤔4
Распаковка элементов коллекции — это процесс разбиения (или деструктуризации) списка, кортежа или другого iterable объекта на отдельные переменные. В Python это реализовано через множественное присваивание, что позволяет легко и красиво извлекать значения из коллекций.

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

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

Пример кода с использованием библиотеки TextBlob:

from textblob import TextBlob

def analyze_sentiment(text):
blob = TextBlob(text)
sentiment = blob.sentiment.polarity
return "Позитивный" if sentiment > 0 else "Негативный" if sentiment < 0 else "Нейтральный"

text = "Это лучший продукт, который я когда-либо покупал!"
print(f"Настроение: {analyze_sentiment(text)}")


Применимо для анализа сообщений в социальных сетях или на сайтах.
👍6✍1
Pyxel — это креативная и простая библиотека для создания ретро-игр на Python, которая позволяет воссоздавать атмосферу старых аркадных игр. С помощью Pyxel можно разрабатывать игры, используя ограниченную палитру из 16 цветов и 4 звуковых канала, как в добрые старые времена видеоигр.

Библиотека совместима с Windows, Mac и Linux, а также может работать прямо в вашем браузере, что делает её доступной для разных платформ.

https://github.com/kitao/pyxel
👍3
Вместо того чтобы вручную отслеживать индекс с помощью счётчика, Python предлагает использовать функцию next(). Она работает с итераторами, позволяя автоматически продвигаться по коллекции, сохраняя текущую позицию в памяти. Это освобождает от необходимости вручную управлять индексами, а также делает код чище и эффективнее.

Таким образом, next() можно использовать для итерации по генераторам или любым другим объектам, поддерживающим интерфейс итератора, что значительно упрощает работу с коллекциями.
👍9
Секреты перевода текста в морзянку

Морзянка — это отличный способ закодировать сообщение и сделать его более интересным. В Python это можно сделать очень просто.

Пример кода:

MORSE_CODE_DICT = {
'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---',
'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-',
'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--', 'Z': '--..',
'0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.',
' ': '/'
}

def text_to_morse(text):
return ' '.join(MORSE_CODE_DICT.get(i.upper(), '') for i in text)

message = input("Введите сообщение для перевода в морзянку: ")
print(text_to_morse(message))


Теперь ваши подписчики смогут отправлять сообщения в морзянке! Удивите их оригинальностью.
👍7🔥2❤‍🔥1
Транспонирование 2D-массива — это процесс замены строк на столбцы и наоборот. В Python можно легко сделать это с помощью встроенной функции zip(), которая позволяет «перевернуть» строки в столбцы.

Простой и эффективный способ транспонирования массива — это использование zip с распаковкой аргументов. Такой подход позволяет легко изменить структуру данных, при этом сохраняя чистоту и компактность кода.
👍9❤‍🔥1
Создание таймера на Python с обратным отсчетом

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

Пример кода:

import time

def countdown_timer(seconds):
while seconds:
mins, secs = divmod(seconds, 60)
timer = '{:02d}:{:02d}'.format(mins, secs)
print(timer, end='\r')
time.sleep(1)
seconds -= 1
print("Время вышло!")

# Запускаем таймер на 5 минут
countdown_timer(5 * 60)


Этот код создаст таймер с обратным отсчетом, который будет обновляться каждую секунду. Используйте его для различных целей, например, для рабочих сессий или задач с ограниченным временем.
👍6👎2
Группировка смежных списков — задача, с которой можно справиться через обычный цикл for, но есть более элегантный и быстрый способ. Используя zip() и лямбда-выражение, можно легко и компактно объединить несколько списков попарно.

Такой подход позволяет создать пары элементов из разных списков, и делает решение задачи намного проще и производительнее, чем просто циклом for. Это особенно полезно, когда нужно работать с несколькими коллекциями одновременно.
👍7👎1
Секреты создания "умных" напоминаний с использованием Python

Можно создать систему напоминаний, которая будет уведомлять пользователя о делах, используя Python. Простой код с использованием библиотеки schedule для организации задач.

Пример кода:

import schedule
import time

def job():
print("Напоминание: Пора сделать перерыв!")

schedule.every(1).hours.do(job)

while True:
schedule.run_pending()
time.sleep(1)


Этот код будет напоминать вам каждые час о перерыве, и вы можете добавлять любые другие задачи по своему усмотрению. Это отличный способ управлять временем и не забывать важные моменты
👍7😁1😐1
Модуль geopy

Он абстрагирует различные API геокодирования, что позволяет получать данные о местоположении, такие как полный адрес, координаты (широта и долгота), а иногда и высота.

Также в geopy есть класс Distance, который позволяет вычислять расстояние между двумя точками с учётом различных единиц измерения. Это удобное решение для работы с расстояниями между городами, точками на карте или другими географическими объектами.
❤6
Создание текстового калькулятора для конверсии единиц измерений

Если вам нужно быстро перевести один тип измерений в другой (например, из километров в мили или из фунтов в килограммы), Python отлично подойдет для таких задач.

Пример кода:

def convert_units(value, from_unit, to_unit):
conversions = {
('км', 'м'): value * 1000,
('м', 'км'): value / 1000,
('кг', 'фунты'): value * 2.20462,
('фунты', 'кг'): value / 2.20462,
}
return conversions.get((from_unit, to_unit), "Конвертация не поддерживается")

value = float(input("Введите значение для конвертации: "))
from_unit = input("Введите единицу измерения (например, 'км' или 'кг'): ")
to_unit = input("Введите единицу измерения для перевода (например, 'м' или 'фунты'): ")

print(f"Результат: {convert_units(value, from_unit, to_unit)}")


Этот калькулятор поможет вам легко и быстро конвертировать единицы измерения. Простой и удобный инструмент для повседневных нужд
❤‍🔥4
Инструмент командной строки howdoi

howdoi — это удобный инструмент командной строки, который позволяет быстро искать решения для программирования прямо из терминала. Задайте вопрос, и он автоматически находит ответ на StackOverflow, извлекая наиболее подходящий фрагмент кода.

Однако стоит помнить, что он может не всегда давать точные или самые лучшие решения, ведь он ориентируется на топовые ответы, а не на их качество. Тем не менее, это отличный способ быстро получить ответы, когда нужно что-то срочно, не отвлекаясь на поиски в браузере.
👍5🍌1
Библиотека Jedi
Библиотека
для автодополнения и анализа кода помогает ускорить процесс написания программ, улучшая продуктивность разработчика. Одной из полезных возможностей, которую она может предложить, является работа с kwargs.

Когда перед объектом словаря ставятся две звёздочки (например, **my_dict), его содержимое передаётся в функцию как именованные аргументы. Ключи словаря становятся именами аргументов, а значения — их значениями. Причём вам не нужно обязательно использовать имя kwargs — это может быть любое название.
❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
yt-dlg

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

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

➡️ Cсылка на GitHub
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
BiRefNet: Нейросеть для умной сегментации изображений

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

Она будет отличным решением для разработчиков, которым нужно бесплатное, но мощное средство для работы с изображениями.

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

BiRefNet легко интегрируется в различные приложения, а её модели можно найти на таких платформах, как Hugging Face и fal.ai, что делает её доступной для разработчиков по всему миру.

Совет: Если хотите провести быструю обработку изображений, BiRefNet — идеальный выбор для ваших проектов!

➡️ Cсылка на GitHub
👍2
Перегрузка операторов в Python

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

🎯 Интересный факт: перегрузка операторов помогает улучшить читаемость и выразительность кода, когда вы работаете с собственными классами.
👍3
Библиотека sh

Позволяет вызывать любые внешние программы как обычные функции прямо в коде Python. Это делает её идеальным инструментом для автоматизации различных задач и интеграции сторонних утилит без необходимости писать сложный код для работы с процессами. С помощью sh можно легко взаимодействовать с операционной системой и сторонними сервисами, повышая эффективность разработки и ускоряя рабочие процессы.
👍10