Найти в Дзене
Цифровой Цех

Python Ввод и вывод данных: Как общаться с пользователем

Привет! Научимся задавать вопросы пользователю, получать ответы и красиво показывать результаты. Самый простой способ получить данные — функция input(). Она останавливает программу и ждёт, пока человек что-то напишет и нажмёт Enter. name = input("Как тебя зовут? ")
print("Привет,", name, "!") Всё, что вводит пользователь, input() возвращает как строку — даже если это цифры! age = input("Сколько тебе лет? ") # вернёт, например, "27"
print(age + 5) Если мы попытаемся выполнить этот код, непременно получим ошибку так как нельзя сложить строку и число! Поэтому числа нужно сразу преобразовывать: age = int(input("Сколько тебе лет? "))
print("Через 10 лет тебе будет", age + 10) Аналогично работает float() для дробных чисел: height = float(input("Твой рост в метрах (например, 1.75): "))
print(f"Ты выше {height - 1.60:.2f} м среднего роста в 19 веке!") bill = float(input("Сколько был счёт в кафе? "))
tip_percent = int(input("Сколько процентов оставить на чаевые (10-20)? "))
tip = bill *
Оглавление

Привет! Научимся задавать вопросы пользователю, получать ответы и красиво показывать результаты.

Функция input() — спрашиваем у пользователя

Самый простой способ получить данные — функция input(). Она останавливает программу и ждёт, пока человек что-то напишет и нажмёт Enter.

name = input("Как тебя зовут? ")
print("Привет,", name, "!")

Всё, что вводит пользователь, input() возвращает как строку — даже если это цифры!

age = input("Сколько тебе лет? ") # вернёт, например, "27"
print(age + 5)

Если мы попытаемся выполнить этот код, непременно получим ошибку так как нельзя сложить строку и число!

-2

Поэтому числа нужно сразу преобразовывать:

age = int(input("Сколько тебе лет? "))
print("Через 10 лет тебе будет", age + 10)

Аналогично работает float() для дробных чисел:

height = float(input("Твой рост в метрах (например, 1.75): "))
print(f"Ты выше {height - 1.60:.2f} м среднего роста в 19 веке!")
-3

Мини-задача: Калькулятор чаевых

bill = float(input("Сколько был счёт в кафе? "))
tip_percent = int(input("Сколько процентов оставить на чаевые (10-20)? "))

tip = bill * tip_percent / 100
total = bill + tip

print(f"Чаевые: {tip:.2f} ₽")
print(f"Итого к оплате: {total:.2f} ₽")
print("Спасибо за хорошее обслуживание!")
-4

Красивый вывод: f-строки — наше всё

Мы уже видели f-строки, но давайте закрепим, почему они лучшие:

name = input("Имя: ")
city = input("Город: ")
# Старинный способ (это будет работать, но не делайте так)
print("Привет, " + name + " из " + city + "!")
# Современный и удобный способ
print(f"Привет, {name} из {city}! Рад тебя видеть!")
-5

Можно вставлять даже выражения:

score = 95
print(f"Ты набрал {score}% — это {score // 10 * ' отлично' if score >= 90 else 'хорошо'}!")


# Выведет: Ты набрал 95% — это отлично отлично отлично отлично отлично отлично отлично отлично отлично!

-6

Полезные трюки с f-строками

price = 1299.8
print(f"Цена: {price:,.2f} ₽") # → Цена: 1,299.80 ₽
print(f"Скидка: {price * 0.15:.0f} ₽") # без копеек
print(f"{'ВЫГОДНО!':*^20}") # → *****ВЫГОДНО!*****
-7

Многострочный ввод

Иногда нужно попросить пользователя ввести сразу несколько строк — например, отзыв.

print("Напиши короткий отзыв о нашем курсе (закончи пустой строкой):")
review = ""
while True:
line = input()
if line == "":
break
review += line + "\n"

print("\nСпасибо за отзыв!\nВот что ты написал:")
print(review)

Этот пример будет просить пользователя снова и снова вводить данные, пока пользователь не введет пустую строку.

-8

Практическое задание: «Генератор паролей» с диалогом

Напишем маленькую, но полезную программу:

import random
import string
print("Генератор надёжных паролей".center(50, "="))
length = int(input("Длина пароля (8–32): "))
use_upper = input("Большие буквы? (да/нет): ").lower() == "да"
use_digits = input("Цифры? (да/нет): ").lower() == "да"
use_symbols = input("Символы (!@#$%)? (да/нет): ").lower() == "да"
chars = string.ascii_lowercase
if use_upper:   chars += string.ascii_uppercase
if use_digits:  chars += string.digits
if use_symbols: chars += "!@#$%^&*()_+-="
password = ''.join(random.choice(chars) for _ in range(length))
print("\n" + "="*50)
print(f"Ваш пароль: {password}")
print("="*50)
print("Скопируйте и сохраните в надёжном месте!")

-9

Полезные советы

  • Всегда используйте strip() для очистки от лишних пробелов: name.strip()
  • .title() — делает первую букву заглавной
  • Оборачивайте input() в try-except, если боитесь, что пользователь введёт не число (об этом позже)
  • Для секретных данных (пароли) используйте модуль getpass:Pythonfrom getpass import getpass
    password = getpass("Введите пароль: ") # ввод не отображается

Заключение

Теперь ваша программа умеет разговаривать! Это огромный шаг — от «молчащего калькулятора» к настоящему интерактивному помощнику.

Попробуйте прямо сейчас написать свою мини-программу:

  • конвертер валют
  • определитель знака зодиака
  • генератор никнеймов
  • игру «Угадай число»

Любая идея подойдёт!