Читать книгу Мастерство терминальных интерфейсов 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`.