Ввод и вывод в Python: input(), print(), работа с консолью

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


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

print() выводит текст и другие значения в консоль. По умолчанию после вывода добавляется перевод строки.

Простой вывод

python
print("Привет, мир!")

Вывод:

text
Привет, мир!

Вывод нескольких значений

Можно передать несколько аргументов — они выведутся через пробел:

python
name = "Анна"
age = 27
print("Имя:", name, "Возраст:", age)

Вывод:

text
Имя: Анна Возраст: 27

Управление разделителем и окончанием строки

У print() есть параметры:

  • sep — разделитель между аргументами (по умолчанию пробел).
  • end — строка, которая добавляется в конце (по умолчанию перевод строки \n).

Пример: вывести числа через запятую в одну строку:

python
print(1, 2, 3, sep=", ", end="\n")

Вывод:

text
1, 2, 3

Если нужно вывести без перевода строки (например, прогресс-бар):

python
import time
for i in range(5):
    print(".", end="", flush=True)
    time.sleep(0.5)
print()  # чтобы в конце всё-таки перейти на новую строку

Параметр flush=True заставляет вывод происходить сразу, без буферизации.


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

input() ждёт, пока пользователь введёт текст и нажмёт Enter, затем возвращает строку.

python
name = input("Введите ваше имя: ")
print("Привет,", name)

Пользователь увидит:

text
Введите ваше имя: 

После ввода «Мария» программа выведет:

text
Привет, Мария

Важно: input() всегда возвращает строку, даже если пользователь ввёл цифры.


Преобразование ввода: работа с числами

Чтобы использовать введённые данные в вычислениях, строку нужно преобразовать в число.

Целое число

python
age_str = input("Ваш возраст: ")
age = int(age_str)
print("Через год вам будет:", age + 1)

Сокращённый вариант:

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

Число с плавающей точкой

python
weight = float(input("Ваш вес (кг): "))
print("Вес в фунтах:", weight * 2.20462)

Обработка ошибок при вводе

Если пользователь введёт не число, а текст, int() или float() выбросят исключение ValueError. Чтобы программа не падала, используют обработку ошибок.

Пример безопасного ввода числа:

python
while True:
    try:
        age = int(input("Введите ваш возраст (число): "))
        break
    except ValueError:
        print("Это не число. Попробуйте ещё раз.")

Такой цикл будет повторять запрос, пока не будет введено корректное число.


Практический пример: простой калькулятор

Программа запрашивает два числа и операцию, затем выводит результат.

python
a = float(input("Первое число: "))
b = float(input("Второе число: "))
op = input("Операция (+, -, *, /): ")
 
result = None
if op == "+":
    result = a + b
elif op == "-":
    result = a - b
elif op == "*":
    result = a * b
elif op == "/":
    if b != 0:
        result = a / b
    else:
        print("Ошибка: деление на ноль.")
else:
    print("Неизвестная операция.")
 
if result is not None:
    print("Результат:", result)


Ещё один пример: опрос пользователя

Соберём несколько данных и выведем отчёт:

python
name = input("Ваше имя: ")
city = input("Город проживания: ")
has_pet = input("Есть ли питомец? (да/нет): ").lower()
 
print("\n--- Отчёт ---")
print("Имя:", name, sep=": ")
print("Город:", city, sep=": ")
if has_pet == "да":
    print("Статус: есть питомец")
else:
    print("Статус: питомца нет")

Обратите внимание: .lower() приводит ввод к нижнему регистру, чтобы «Да», «ДА», «да» обрабатывались одинаково.

Добавить комментарий