Python на примерах
1.39K subscribers
411 photos
6 videos
145 links
Короткие уроки Python на примерах
Download Telegram
Модуль zlib

zlib — это эффективное решение для сжатия и распаковки данных в Python. Он идеально подходит для работы с большими объемами информации, например, при передаче пакетов. Основные функции, которые стоит знать — compress() и decompress(), которые позволяют быстро и эффективно сжимать и восстанавливать данные.

Если нужно уменьшить размер данных, zlib всегда под рукой.
👍6
Четыре типа кавычек в Питон

В Python можно использовать как одинарные, так и двойные кавычки для строк. Главное — строка должна начинаться и заканчиваться одним и тем же типом кавычек. Но есть еще два интересных типа: тройные одинарные кавычки (''') и тройные двойные кавычки ("""). Это даёт гибкость при работе с вложенными кавычками, позволяя избежать экранирования.

Теперь можно спокойно работать с кавычками разных типов, не беспокоясь о путанице
👍5🥰2❤1
Функция reduce

Функция reduce похожа на map, но с одним важным отличием — она возвращает одно итоговое значение, полученное в результате последовательных применений функции. В отличие от map, где результатом является итерация, reduce сводит все элементы к единому результату. Не забудьте импортировать её из модуля functools перед использованием.

Это мощный инструмент для выполнения операций свертки данных в одну переменную
👍4
Функции any и all

Функции any и all — это удобные инструменты, заменяющие операторы OR и AND, и они значительно упрощают код, особенно когда нужно проверить несколько условий.

Обе функции принимают список булевых значений и возвращают одно булево значение:
- any работает как оператор OR: если хотя бы одно значение в списке True, результат будет True.
- all действует как оператор AND: если хотя бы одно значение False, результат будет False.

Эти функции делают код более компактным и читаемым, когда работаете с множеством условий
👍10
Срезы для строк в Python

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

Кроме того, срезы можно задавать не только числами, но и переменными, что дает еще больше гибкости.
👍3
Выбор случайного элемента из последовательности

Модуль random из стандартной библиотеки Python предоставляет множество полезных функций для работы с случайными данными. Одной из самых часто используемых является функция random.choice(seq), которая позволяет выбрать случайный элемент из индексируемой последовательности, будь то список, кортеж или строка.

Это простое и удобное решение, если нужно случайным образом выбрать элемент из коллекции
👍3
Просмотр атрибутов и методов класса в интерпретаторе Python

Функция dir() — это удобный способ получить список атрибутов и методов класса. Особенно полезно, когда нужно разобраться с чужим кодом, а документация отсутствует. Просто передав объект в dir(), вы получаете полный список доступных методов и атрибутов для взаимодействия с этим объектом.

Это идеальный инструмент для быстрого анализа классов и объектов в Python
20+ производительных LLM, написанных с нуля, с подробным описанием, инструкциями, файнтюнигу и деплою.

Особенности:
🟢 Модели написаны с нуля
🟢 Нет абстракций
🟢 Подходит для обучения новичков
🟢 Flash attention
🟢 FSDP
🟢 LoRA, QLoRA, Adapter
🟢 Уменьшение памяти GPU (fp4/8/16/32)
🟢 1-1000+ GPU/TPUs
🟢 20+ LLMs

Установка:


pip install 'litgpt[all]'

Пример:

from litgpt import LLM

llm = LLM.load("microsoft/phi-2")
text = llm.generate("Fix the spelling: Every fall, the familly goes to the mountains.")
print(text)
# Corrected Sentence: Every fall, the family goes to the mountains.


▪️Github
▪️Docs
▪️Video
👍3
Распечатывание ежемесячного календаря

В Python есть скрытая функция, которая позволяет легко распечатать календарь на месяц в виде таблицы. Для этого достаточно использовать модуль calendar. Это простой и удобный способ быстро вывести нужный месяц в читаемом формате.

Идеальный лайфхак, когда нужно быстро получить календарь без лишних усилий
💯6🔥3
Автоматическое создание ASCII-арт из картинки

Зачем тратить время на создание изображений вручную, если можно просто преобразовать их в ASCII-арт с помощью Python? В этом поможет библиотека Pillow, которая предназначена для обработки изображений, и немного магии с символами.

Пример:

from PIL import Image

def image_to_ascii(image_path, width=100):
image = Image.open(image_path)
aspect_ratio = image.height / float(image.width)
new_height = int(aspect_ratio * width)
image = image.resize((width, new_height))
image = image.convert('L') # Конвертируем в оттенки серого

pixels = image.getdata()
ascii_chars = ["@", "#", "S", "%", "?", "*", "+", ";", ":", ",", "."]
ascii_str = ''.join([ascii_chars[pixel // 25] for pixel in pixels])

return '\n'.join([ascii_str[index:index + width] for index in range(0, len(ascii_str), width)])

print(image_to_ascii("your_image.jpg"))


Этот код преобразует картинку в текстовую форму, а результат можно вывести прямо в терминал
❤‍🔥3
Сколько в идеале постов в день публиковать?
Anonymous Poll
17%
1
19%
2
15%
3
14%
более 3
50%
Сколько хочешь
❤‍🔥4
Объединение списка в одну строку

Когда перед вами стоит задача соединить строки из списка в единую строку, вы можете обойти все элементы и добавлять их по очереди. Но зачем делать это вручную, когда можно использовать метод join(), который решит задачу за одну строку кода, быстро и эффективно
👍8
Определение возраста человека по его дате рождения

Хотите автоматизировать процесс вычисления возраста по дате рождения? В Python можно легко получить точный возраст человека, используя модуль datetime.

Пример кода:

# Запрос даты рождения у пользователя с обработкой ошибок
from datetime import datetime

def calculate_age(birthdate):
today = datetime.today()
age = today.year - birthdate.year
# Учитываем, если день рождения в этом году ещё не был
if (today.month, today.day) < (birthdate.month, birthdate.day):
age -= 1
return age

# Запрос даты рождения у пользователя с обработкой ошибок
while True:
try:
birthdate_input = input("Введите вашу дату рождения (в формате ДД.ММ.ГГГГ): ")
birthdate = datetime.strptime(birthdate_input, "%d.%m.%Y")
break # Выход из цикла, если дата введена корректно
except ValueError:
print("Некорректный формат даты. Пожалуйста, используйте формат ДД.ММ.ГГГГ.")

# Вывод возраста
print(f"Ваш возраст: {calculate_age(birthdate)} лет")



Просто введите дату рождения, и программа посчитает возраст
👍4🔥4❤1❤‍🔥1😁1
Перемешивание элементов списка с помощью 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