Главная Сборник задач

Урок 7. Ввод и вывод данных: Полное погружение

Вы уже умеете выводить простой текст на экран с помощью print() и запрашивать данные через input(). Эти две функции образуют основной мост между человеком и компьютером. В этом уроке мы разберем их работу "под капотом" и научимся управлять вводом и выводом как настоящие профессионалы.

1. Анатомия функции input()

Функция input() — это ваш способ получить информацию от пользователя. Когда интерпретатор Python доходит до строчки с input(), происходит две важные вещи:

  1. Пауза: Программа полностью останавливает свою работу. Она "замирает" и ждет, пока пользователь напечатает текст на клавиатуре и нажмет клавишу Enter.
  2. Возврат строки: Всё, что ввел пользователь, функция берет и превращает в текст (тип данных str). Если вы не "поймаете" этот текст в переменную (коробочку), он просто исчезнет в никуда.
💬

Промпт (Подсказка)

То, что вы пишете внутри скобок функции input(), называется промптом (от англ. prompt — побуждать). Это сообщение, которое пользователь увидит перед вводом. Оно не сохраняется в переменную, а служит только инструкцией для человека за экраном.

# Правильное использование input()
# Текст "Введите пароль: " - это промпт. Он выведется на экран.
# То, что напечатает пользователь, сохранится в переменную password.
password = input("Введите пароль: ")

2. Секретные настройки print(): параметры sep и end

Функция print() кажется простой, но внутри нее скрыто много возможностей. Когда вы передаете ей несколько элементов через запятую, Python по умолчанию ставит между ними пробел, а в самом конце делает перенос курсора на новую строку.

Но мы можем полностью изменить это поведение, передав специальные "именованные параметры" в конец команды:

# Использование sep: меняем пробел на дефис или слэш
print("20", "12", "2026", sep=".")
print("user", "domain.com", sep="@")

# Использование end: убираем перенос строки, чтобы склеить выводы
print("Загрузка", end="...")
print("100%", end=" ")
print("Успешно!")

# Комбинация sep и end
print("A", "B", "C", sep=" | ", end=" ===> ")
print("Готово")
20.12.2026 > user@domain.com > Загрузка...100% Успешно! > A | B | C ===> Готово

3. Экранирование символов (Escape Sequences)

Иногда нужно вывести символ, который в Python используется для самого кода. Например, как вывести двойные кавычки внутри текста, который уже обрамлен двойными кавычками? Компьютер запутается и подумает, что вы закрыли строку раньше времени.

Для решения этой проблемы используют обратный слэш \ (backslash). Он говорит интерпретатору: "Следующий за мной символ — это просто текст, не воспринимай его как команду".

# Экранирование кавычек
print("Он сказал: \"Python - отличный язык!\"")

# Перенос строки вручную с помощью \n (newline)
print("Первая строка\nВторая строка\nТретья строка")

# Как вывести сам обратный слэш? Экранировать его другим слэшем!
print("Путь к файлу: C:\\Windows\\System32")
Он сказал: "Python - отличный язык!" > Первая строка > Вторая строка > Третья строка > Путь к файлу: C:\Windows\System32

4. F-строки: Вершина эволюции вывода

Часто нам нужно вставить переменные внутрь длинного текста. До появления современных версий Python программистам приходилось постоянно "склеивать" строки плюсами или запятыми. Это было очень долго, неудобно и часто приводило к ошибкам из-за забытых пробелов.

# Старый и неудобный способ (Легко забыть пробел или плюс)
# К тому же, число (apples) приходится оборачивать в str(), иначе будет ошибка!
name = "Анна"
apples = 5
print("Привет, " + name + "! У тебя " + str(apples) + " яблок.")

Теперь у нас есть f-строки (форматированные строки). Достаточно поставить букву f или F перед началом кавычек, и вы сможете вставлять любые переменные прямо внутрь текста, оборачивая их в фигурные скобки { }!

# Современный способ (F-строки) - чисто и красиво!
name = "Анна"
apples = 5
print(f"Привет, {name}! У тебя {apples} яблок.")
Привет, Анна! У тебя 5 яблок.
✨

Почему F-строки — это мощь?

Во-первых, код читается как обычная книга на русском языке. Во-вторых, вам больше не нужно использовать str() для чисел! F-строка автоматически превратит любое число в текст при выводе. А в-третьих, внутри фигурных скобок можно делать настоящую математику!

# Вычисления прямо внутри F-строки
price = 120
count = 3
print(f"Вы купили {count} предмета. К оплате: {price * count} золота.")
Вы купили 3 предмета. К оплате: 360 золота.

Симодулятор: Конструктор F-строк

Введите данные в переменные, и они мгновенно окажутся внутри фигурных скобок в f-строке, образуя готовое предложение.

hero =
coins =
print(f"{hero} нашел сундук, в котором {coins} монет!")
> Рыцарь нашел сундук, в котором 150 монет!

🧠 Проверь себя

Как хорошо вы поняли продвинутый ввод и вывод?

1. Для чего нужен промпт в функции input()?
Показать правильный ответ
Промпт — это текст внутри скобок (подсказка). Он просто выводится на экран, чтобы пользователь понял, какие именно данные от него ждет программа.
2. Если мы напишем print("Раз", "Два", sep="---"), что выведет компьютер?
Показать правильный ответ
Компьютер выведет: Раз---Два. Параметр sep заменяет стандартный пробел между элементами на переданные нами три дефиса.
3. Что позволяет делать символ обратного слэша \ перед кавычками?
Показать правильный ответ
Это экранирование. Оно заставляет интерпретатор воспринимать следующий символ просто как текстовый знак, а не как специальный символ кода (что позволяет, например, выводить кавычки внутри кавычек).