🎨 Как Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² консоли Π½Π° Python: бСсплатныС инструкции ΠΈ совСты 2021

Как Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² консоли Π½Π° Python?

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² консоли Π½Π° языкС Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ turtle. Он прСдоставляСт простой интСрфСйс для создания графичСских ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.


import turtle

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ экзСмпляр Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΠΈ
t = turtle.Turtle()

# РисуСм ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚
for _ in range(4):
    t.forward(100)
    t.right(90)

# Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ
turtle.done()

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ создаст Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΡƒ, которая нарисуСт ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π° стороны ΠΈΠ»ΠΈ ΡƒΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ turtle ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для рисования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€ ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ². Π˜ΡΡΠ»Π΅Π΄ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

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

Как Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² консоли Π½Π° Python?

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

1. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses являСтся стандартным ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Python, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ тСкстовый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π² консоли. Она прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для управлСния курсором, измСнСния Ρ†Π²Π΅Ρ‚Π° тСкста ΠΈ Ρ„ΠΎΠ½Π°, рисования Π»ΠΈΠ½ΠΈΠΉ ΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses для рисования простого ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°:

import curses

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses
stdscr = curses.initscr()

# ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ отобраТСния Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… символов
curses.noecho()

# Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° curses, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ прямо Π² интСрфСйсС
stdscr.keypad(True)

# ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² консольного ΠΎΠΊΠ½Π°
height, width = stdscr.getmaxyx()

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°
curses.rectangle(stdscr, 0, 0, height-1, width-1)

# ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
stdscr.refresh()

# ОТиданиС наТатия любой клавиши для Π²Ρ‹Ρ…ΠΎΠ΄Π°
stdscr.getch()

# Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ curses
curses.endwin()

2. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° blessings

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° blessings прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для форматирования тСкста ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ Π² консоли. Она основана Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ curses, Π½ΠΎ прСдоставляСт Π±ΠΎΠ»Π΅Π΅ простой ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ blessings для рисования Ρ†Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ тСкста:

from blessings import Terminal

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ blessings
term = Terminal()

# ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ тСкста
print(term.green("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"))

# ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ красного тСкста с ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ
print(term.bold_red("Ошибка!"))

# ОТиданиС наТатия любой клавиши для Π²Ρ‹Ρ…ΠΎΠ΄Π°
input()

3. ИспользованиС символов Unicode

Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ символы Unicode, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ символы для создания графичСских элСмСнтов Π² консоли. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов для рисования Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ символы Unicode для рисования Π³Ρ€Π°Ρ„ΠΈΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ:

# Установка ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8
import sys
sys.stdout.reconfigure(encoding='utf-8')

# ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°
print("β”Œβ”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”")
print("β”‚       β”‚       β”‚")
print("β”‚       β”‚       β”‚")
print("β””β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜")

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы Unicode для создания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€ ΠΈ графичСских элСмСнтов прямо Π² консоли Π½Π° Python.

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов рисования Π² консоли Π½Π° Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ curses для создания тСкстового ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ blessings для форматирования тСкста ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ символы Unicode для создания графичСских элСмСнтов.

НС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ сСбя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этими способами - экспСримСнтируйтС, Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ ΠΈ создавайтС свои ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ произвСдСния искусства прямо Π² консоли Π½Π° Python!

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

ASCII Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ PIXEL Π°Ρ€Ρ‚ Π½Π° Python [ Pygame + OpenCV ]

Π‘Π΄Π΅Π»Π°Π» 3D Π² консоли с нуля | трассировка Π»ΡƒΡ‡Π΅ΠΉ

Написал 3D Π˜Π³Ρ€Ρƒ Π² Консоли!

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

πŸ”§ Как ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Python Π² VSC

πŸ” Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ Π½Π° английском?

πŸ”Ž Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ s str Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? ΠžΡ‚Π²Π΅Ρ‚ здСсь!

🎨 Как Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² консоли Π½Π° Python: бСсплатныС инструкции ΠΈ совСты 2021

πŸ” ΠžΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСп Π² Python: Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΈ использованиС

πŸ˜„ΠšΠ°ΠΊ ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ строку Π² Python Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹?βœ‚οΈ

πŸ” Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ fromkeys Π² Python ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?