Читать книгу Мастерство терминальных интерфейсов Python: TUI от основ к профессионализму - - Страница 5

Глава 5. Работа с текстом: ввод, вывод данных пользователю

Оглавление

Взаимодействие с пользователем – ключевой аспект терминальных приложений. Python предоставляет простые, но мощные инструменты для ввода и вывода текстовой информации. Начнём с базовых механизмов работы с текстом.


**Вывод данных: функция `print()`**

Функция `print()` – основной способ отображения информации. Она преобразует переданные объекты в строки и выводит их в консоль. Пример:

```python

print("Добро пожаловать в приложение!")

```

Вы можете передавать несколько аргументов, разделяемых запятыми. По умолчанию `print()` объединяет их через пробел и добавляет символ переноса строки `\n`. Чтобы изменить разделитель или завершение строки, используйте параметры `sep` и `end`:

```python

print("Файл", "загружен", "успешно", sep="::", end="!\n")

# Результат: "Файл::загружен::успешно!"

```


**Форматирование строк**

Для создания сложных выводов применяйте форматирование:

1. **f-строки** (рекомендуется):

```python

name = "Алиса"

balance = 1200.75

print(f"Пользователь: {name}. Баланс: {balance:.2f} ₽")

# Вывод: "Пользователь: Алиса. Баланс: 1200.75 ₽"

```

2. **Метод `str.format()`**:

```python

print("Сумма: {} из {}".format(5, 10)) # Сумма: 5 из 10

```

3. **Шаблоны % (устаревший способ)**:

```python

print("Отчёт за %s. Ошибок: %d" % ("2024", 0))

```


**Ввод данных: функция `input()`**

Для получения данных от пользователя используйте `input()`. Функция приостанавливает выполнение программы, ожидает ввода с клавиатуры (до нажатия Enter) и возвращает строку:

```python

name = input("Введите ваше имя: ")

print(f"Здравствуйте, {name}!")

```

**Важно:** `input()` всегда возвращает строку. Для преобразования в числа используйте `int()` или `float()`:

```python

try:

age = int(input("Ваш возраст: "))

except ValueError:

print("Ошибка: введите целое число!")

```


**Расширенные возможности вывода**

Для сложных интерфейсов используйте библиотеки, но некоторые эффекты доступны без них:

1. **Многострочный текст**: Тройные кавычки сохраняют переносы:

```python

print("""Первая строка

Вторая строка""")

```

2. **Управление курсором** (ANSI-коды):

```python

print("\033[2J") # Очистка экрана (поддерживается не всеми терминалами)

```

3. **Цветной текст** (через ANSI-коды):

```python

print("\033[31mКрасный текст\033[0m") # \033[0m сбрасывает стиль

```


**Обработка ошибок ввода**

Всегда проверяйте пользовательский ввод на корректность:

```python

while True:

try:

value = float(input("Введите число: "))

break

except ValueError:

print("Ошибка! Введите числовое значение.")

```


**Практические советы**

– Используйте f-строки для читаемости и производительности.

– При запросе конфиденциальных данных (пароли) применяйте модуль `getpass`.

– Для длинных текстов выводите содержимое по частям или с пагинацией.


Эти фундаментальные техники обеспечивают базовое взаимодействие с пользователем. В следующих главах мы расширим их, добавив интерфейсы на базе библиотек, таких как `curses` или `rich`.


Мастерство терминальных интерфейсов Python: TUI от основ к профессионализму

Подняться наверх