Python на примерах
1.39K subscribers
411 photos
6 videos
145 links
Короткие уроки Python на примерах
Download Telegram
Распечатывание ежемесячного календаря

В 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
Секреты перевода текста в морзянку

Морзянка — это отличный способ закодировать сообщение и сделать его более интересным. В 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