Урок 7. Ввод и вывод данных: Полное погружение
Вы уже умеете выводить простой текст на экран с помощью print() и запрашивать данные через input(). Эти две функции образуют основной мост между человеком и компьютером. В этом уроке мы разберем их работу "под капотом" и научимся управлять вводом и выводом как настоящие профессионалы.
1. Анатомия функции input()
Функция input() — это ваш способ получить информацию от пользователя. Когда интерпретатор Python доходит до строчки с input(), происходит две важные вещи:
- Пауза: Программа полностью останавливает свою работу. Она "замирает" и ждет, пока пользователь напечатает текст на клавиатуре и нажмет клавишу Enter.
- Возврат строки: Всё, что ввел пользователь, функция берет и превращает в текст (тип данных
str). Если вы не "поймаете" этот текст в переменную (коробочку), он просто исчезнет в никуда.
Промпт (Подсказка)
То, что вы пишете внутри скобок функции input(), называется промптом (от англ. prompt — побуждать). Это сообщение, которое пользователь увидит перед вводом. Оно не сохраняется в переменную, а служит только инструкцией для человека за экраном.
# Правильное использование input()
# Текст "Введите пароль: " - это промпт. Он выведется на экран.
# То, что напечатает пользователь, сохранится в переменную password.
password = input("Введите пароль: ")
2. Секретные настройки print(): параметры sep и end
Функция print() кажется простой, но внутри нее скрыто много возможностей. Когда вы передаете ей несколько элементов через запятую, Python по умолчанию ставит между ними пробел, а в самом конце делает перенос курсора на новую строку.
Но мы можем полностью изменить это поведение, передав специальные "именованные параметры" в конец команды:
sep(от англ. separator — разделитель) — заменяет стандартный пробел между элементами на то, что вы укажете.end(от англ. end — конец) — заменяет перенос на новую строчку (скрытый символ\n) на то, что вы укажете.
# Использование 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("Готово")
Симодулятор: Панель управления print()
Измените значения в полях ниже и посмотрите, как это повлияет на финальный вывод двух функций print подряд.
print("Согласны?")
> Согласны?
3. Экранирование символов (Escape Sequences)
Иногда нужно вывести символ, который в Python используется для самого кода. Например, как вывести двойные кавычки внутри текста, который уже обрамлен двойными кавычками? Компьютер запутается и подумает, что вы закрыли строку раньше времени.
Для решения этой проблемы используют обратный слэш \ (backslash). Он говорит интерпретатору: "Следующий за мной символ — это просто текст, не воспринимай его как команду".
# Экранирование кавычек
print("Он сказал: \"Python - отличный язык!\"")
# Перенос строки вручную с помощью \n (newline)
print("Первая строка\nВторая строка\nТретья строка")
# Как вывести сам обратный слэш? Экранировать его другим слэшем!
print("Путь к файлу: 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} яблок.")
Почему F-строки — это мощь?
Во-первых, код читается как обычная книга на русском языке. Во-вторых, вам больше не нужно использовать str() для чисел! F-строка автоматически превратит любое число в текст при выводе. А в-третьих, внутри фигурных скобок можно делать настоящую математику!
# Вычисления прямо внутри F-строки
price = 120
count = 3
print(f"Вы купили {count} предмета. К оплате: {price * count} золота.")
Симодулятор: Конструктор F-строк
Введите данные в переменные, и они мгновенно окажутся внутри фигурных скобок в f-строке, образуя готовое предложение.
🧠 Проверь себя
Как хорошо вы поняли продвинутый ввод и вывод?
input()?
Показать правильный ответ
print("Раз", "Два", sep="---"), что выведет компьютер?
Показать правильный ответ
Раз---Два. Параметр sep заменяет стандартный пробел между элементами на переданные нами три дефиса.\ перед кавычками?