Ввод и числа

До сих пор все данные ты вписывал прямо в код. Но настоящие программы спрашивают данные у того, кто ими пользуется. Сегодня научим программу задавать вопросы командой input и считать — и хорошенько потренируемся на разных операциях. В конце соберём калькулятор карманных денег.

Робот с калькулятором и копилкой считает карманные деньги

input — программа спрашивает у тебя

Команда input показывает приглашение, ждёт, пока ты что-нибудь наберёшь и нажмёшь Enter, и отдаёт введённое обратно в программу. Обычно результат сразу кладут в переменную.

imya = input("Как тебя зовут? ")
print(f"Привет, {imya}!")
Как тебя зовут? Алекс
Привет, Алекс!
  Как работает input:

  imya = input("Как тебя зовут? ")
                    |
                    v
     программа ждёт  -->  ты печатаешь: Алекс
                    |
                    v
     в переменную imya попадает "Алекс"
Важно: input всегда возвращает текст — даже если ты ввёл цифры. Введёшь 5 — в переменной окажется текст "5", а не число 5.

Числа: считаем

С числами Python считает: сложение +, вычитание -, умножение *, деление /. Но чтобы считать, нужно именно число, а input даёт текст. Превратить текст в целое число помогает команда int.

vozrast_text = input("Сколько тебе лет? ")
vozrast = int(vozrast_text)
print(f"Через год тебе будет {vozrast + 1}")
Сколько тебе лет? 13
Через год тебе будет 14
  Текст превращаем в число командой int():

   input() даёт ТЕКСТ:   "13"     считать нельзя
                           |
                         int()
                           v
                  ЧИСЛО:    13      можно: + - * /
Если забыть int и сложить текст, Python склеит строки: "13" + "1" даст "131", а не 14. Поэтому перед расчётом — int. И запомни: деление / даёт дробное число (10 / 4 это 2.5).

Деление с остатком и степень: //, %, **

Кроме обычных операций, очень часто нужны три особые: // — деление нацело (сколько целых раз поместилось), % — остаток от деления, ** — возведение в степень.

print(17 // 5)
print(17 % 5)
print(2 ** 3)
3
2
8
  Деление с остатком:  17 разделить на 5

   17 // 5  =  3      (сколько ПОЛНЫХ пятёрок поместилось)
   17 %  5  =  2      (сколько осталось — ОСТАТОК)

   проверка:  3 * 5 + 2 = 17
Где это нужно: % проверяет чётность (chislo % 2 == 0 — число чётное), а // отвечает на вопросы вроде «на сколько полных недель хватит денег».

Упражнение: калькулятор карманных денег

Скопируй программу и запусти. Введи недельную сумму — калькулятор покажет месяц, год и на сколько недель копить на цель.

# Калькулятор карманных денег
nedelya = int(input("Сколько денег в неделю? "))

za_mesyac = nedelya * 4
za_god = nedelya * 52
print(f"В месяц накопится: {za_mesyac}")
print(f"За год накопится:  {za_god}")

cel = 8000
nedel_kopit = cel // nedelya
print(f"На цель {cel} копить недель: {nedel_kopit}")
Сколько денег в неделю? 500
В месяц накопится: 2000
За год накопится:  26000
На цель 8000 копить недель: 16
  • Введи свою сумму и поменяй цель cel на свою мечту.
  • Добавь расчёт за полгода: nedelya * 26.
  • Выведи остаток: после // попробуй cel % nedelya — сколько не хватит до ровного счёта.
Заметил: в расчёте недель мы взяли //, а не /? Недели целые, дробную неделю копить нельзя — поэтому деление нацело.

Контрольный вопрос. Пользователь ввёл 5 в ответ на input(). Что окажется в переменной?

АТекст «5» — input всегда возвращает текст, даже если ввели цифры
БЧисло 5 — input сам понимает, что это число
ВНичего, пока не вызвать int()

Подсказка: Вспомни главное правило про input: что он возвращает всегда?

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши число.

Исходный код для этого задания:

summa = int("100")
print(summa * 4)

Подсказка: int(«100») превращает текст «100» в число 100. Дальше умножаем на 4.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши число.

Исходный код для этого задания:

print(17 // 5)

Подсказка: // — деление нацело: сколько ПОЛНЫХ пятёрок помещается в 17.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши число.

Исходный код для этого задания:

print(17 % 5)

Подсказка: % — это остаток от деления. 17 = 3*5 + остаток.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши число.

Исходный код для этого задания:

print(2 ** 3)

Подсказка: ** — возведение в степень: 2 в степени 3 это 2*2*2.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши число (с точкой, если оно дробное).

Исходный код для этого задания:

print(10 / 4)

Подсказка: Обычное деление / всегда даёт дробное число, даже если делится не нацело.

Онлайн-проверка ответа появится позже

Задание. Напиши код сам. Переменная za_god уже посчитана. Напиши команду print с f-строкой, которая выведет ровно: За год накопится: — подставь число из переменной za_god, а не пиши его вручную.

Исходный код для этого задания:

nedelya = int(input("Сколько денег в неделю? "))
za_god = nedelya * 52
# напиши ниже команду print, которая выведет: За год накопится: ...

Подсказка: Шаблон: print(f»За год накопится: {имя_переменной}»). В фигурных скобках — za_god.

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Задание. Напиши код сам. В переменной vozrast_text лежит текст с числом. Напиши команду print, которая превратит этот текст в число командой int и выведет его.

Исходный код для этого задания:

vozrast_text = "13"
# напиши ниже команду print, которая выведет vozrast_text как число

Подсказка: Сначала int(…) превращает текст в число, потом print выводит. Шаблон: print(int(имя_переменной)).

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Программа должна сложить два введённых числа, но при вводе 5 и 3 печатает 53 вместо 8. В чём ошибка?

Исходный код для этого задания:

a = input("Первое: ")
b = input("Второе: ")
print(a + b)
АЧисла не превратили в int — input дал текст, и Python склеил строки «5» и «3»
БНужно поставить два плюса: a ++ b
Вinput можно вызывать только один раз

Подсказка: Вспомни, что input возвращает текст. Что будет, если складывать два текста?

Онлайн-проверка ответа появится позже

Что дальше

Теперь твои программы умеют спрашивать данные и считать по-разному — это уже настоящий калькулятор, и ты потренировался на каждой операции. В следующем разделе займёмся текстом вплотную: строки, срезы и шифровка-перевёртыш.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева