πŸ“· Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Python ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ красивыС графичСскиС элСмСнты

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Python

Для добавлСния тСкста Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Pillow. Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


from PIL import Image, ImageDraw, ImageFont

# ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image = Image.open("image.jpg")

# Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ рисования
draw = ImageDraw.Draw(image)

# Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚
font = ImageFont.truetype("arial.ttf", 40)

# ВСкст для добавлСния
text = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСкста"

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ тСкста
text_width, text_height = draw.textsize(text, font)
x = (image.width - text_width) // 2
y = (image.height - text_height) // 2

# Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
draw.text((x, y), text, font=font, fill=(255, 255, 255))

# Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image.save("image_with_text.jpg")

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "image" ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ ΡˆΡ€ΠΈΡ„Ρ‚Ρƒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "font". Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ "arial.ttf" Π½Π° ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΡˆΡ€ΠΈΡ„Ρ‚Ρƒ.

ПослС выполнСния ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ тСкстом ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ "image_with_text.jpg".

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Python

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ тСкста Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· распространСнных Π·Π°Π΄Π°Ρ‡ Π² области ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Python прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ инструмСнты для этой Ρ†Π΅Π»ΠΈ, позволяя Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ тСкст ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ свойства. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько способов добавлСния тСкста Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Python.

1. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PIL

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python Imaging Library (PIL) прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с изобраТСниями. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PIL, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° установлСна с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pip install pillow.


from PIL import Image, ImageDraw, ImageFont

# ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image = Image.open("image.jpg")

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для рисования Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
draw = ImageDraw.Draw(image)

# УстанавливаСм ΡˆΡ€ΠΈΡ„Ρ‚ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ тСкста
font = ImageFont.truetype("arial.ttf", 36)

# Π—Π°Π΄Π°Π΅ΠΌ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
x = 50
y = 50

# РисуСм тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
draw.text((x, y), text, font=font)

# БохраняСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image.save("image_with_text.jpg")
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ PIL для открытия изобраТСния, создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для рисования Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, установки ΡˆΡ€ΠΈΡ„Ρ‚Π° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° тСкста, задания тСкста ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ рисования тСкста Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. ИзмСнСнноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сохраняСтся ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ image_with_text.jpg.

2. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenCV

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° OpenCV являСтся популярным инструмСнтом для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния Π² Python. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° установлСна с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pip install opencv-python.


import cv2

# ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image = cv2.imread("image.jpg")

# УстанавливаСм ΡˆΡ€ΠΈΡ„Ρ‚ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ тСкста
font = cv2.FONT_HERSHEY_SIMPLEX
font_scale = 1
font_thickness = 2

# Π—Π°Π΄Π°Π΅ΠΌ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
x = 50
y = 50

# РисуСм тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
cv2.putText(image, text, (x, y), font, font_scale, (255, 255, 255), font_thickness)

# БохраняСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
cv2.imwrite("image_with_text.jpg", image)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ OpenCV для открытия изобраТСния, установки ΡˆΡ€ΠΈΡ„Ρ‚Π° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° тСкста, задания тСкста ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ рисования тСкста Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. ИзмСнСнноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сохраняСтся ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ image_with_text.jpg.

3. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pygame

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Pygame прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹Π΅ инструмСнты для создания ΠΈΠ³Ρ€ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° установлСна с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pip install pygame.


import pygame

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Pygame
pygame.init()

# Π—Π°Π΄Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΊΠ½Π°
width = 800
height = 600

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ
window = pygame.display.set_mode((width, height))

# ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image = pygame.image.load("image.jpg")

# УстанавливаСм ΡˆΡ€ΠΈΡ„Ρ‚ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ тСкста
font = pygame.font.SysFont("Arial", 36)

# Π—Π°Π΄Π°Π΅ΠΌ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
text = font.render("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!", True, (255, 255, 255))
x = 50
y = 50

# РисуСм тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
image.blit(text, (x, y))

# ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅
window.blit(image, (0, 0))
pygame.display.flip()

# БохраняСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
pygame.image.save(image, "image_with_text.jpg")
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Pygame для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, создания ΠΎΠΊΠ½Π°, открытия изобраТСния, установки ΡˆΡ€ΠΈΡ„Ρ‚Π° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° тСкста, задания тСкста ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ рисования тСкста Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. ИзмСнСнноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сохраняСтся ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ image_with_text.jpg.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов добавлСния тСкста Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий для вас способ Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ тСкста Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ python opencv

Как ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ python Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

PILLOW PYTHON [ 8 ] | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ тСкста Π½Π° изобраТСниях

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как Π½Π°ΠΉΡ‚ΠΈ всС индСксы вхоТдСния Python: Π»Π΅Π³ΠΊΠΈΠΉ способ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ–±οΈ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΊΠ»ΠΈΠΊΠ΅Ρ€ Π½Π° Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство с простыми шагами ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°

πŸ–±οΈ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠΊ Π² Python: простой Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ“· Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Python ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ красивыС графичСскиС элСмСнты

πŸ”— Как ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π΅ строки Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

πŸ’» Как Π»Π΅Π³ΠΊΠΎ ΠΈ бСзопасно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ Ρ„Π°ΠΉΠ» ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ администратора? πŸš€

Как ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° python: Π»ΡƒΡ‡ΡˆΠΈΠ΅ способы