Ввод и вычисления

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

Шестерёнки привода и калькулятор: расчёт передаточного отношения по введённым числам

После урока сможешь: Учим программу спрашивать данные командой input, превращать текст в числа (int/float) и считать по формуле — с делением нацело, остатком, степенью и округлением. В конце собираешь калькулятор передаточного отношения.

input — программа спрашивает данные

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

imya = input("Название узла: ")
print(f"Принято: {imya}")
Название узла: Привод М1
Принято: Привод М1

Важно: input всегда возвращает текст (str) — даже если ввели цифры. Введёшь 5 — в переменной окажется текст "5", а не число 5. Это та самая ловушка типов с прошлого занятия.

Превращаем текст в число: int и float

Чтобы считать, нужно именно число. Текст в целое число превращает команда int, а в дробное — float. После этого с числом можно выполнять арифметику: сложение +, вычитание -, умножение *, деление /.

text = input("Число зубьев: ")
zubya = int(text)
print(f"Через одно больше: {zubya + 1}")
Число зубьев: 40
Через одно больше: 41
  Текст превращаем в число командой int():

   input() даёт ТЕКСТ:   "40"     считать нельзя
                           |
                         int()
                           v
                  ЧИСЛО:    40      можно: + - * /

  float("3.5")  ->  3.5   (для дробных значений)

Если забыть int и сложить текст, Python склеит строки: "40" + "1" даст "401", а не 41. Поэтому перед расчётом — int (или float для дробных).

Особые операции: //, %, **

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

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

   17 // 5  =  3      (сколько ПОЛНЫХ пятёрок поместилось)
   17 %  5  =  2      (сколько осталось — ОСТАТОК)
   2 ** 3   =  8      (2 в степени 3 = 2*2*2)
   10 / 4   =  2.5    (обычное деление — всегда дробное)

   проверка:  3 * 5 + 2 = 17

Где это нужно: % проверяет кратность (n % 2 == 0 — чётное), а // отвечает на вопросы вроде «сколько полных оборотов уместилось».

Округление: round

Дробный результат расчёта обычно округляют. Команда round(число, знаков) округляет до нужного числа знаков после запятой. Например, до двух знаков — как принято в инженерных отчётах.

skorost = 10 / 3
print(skorost)
print(round(skorost, 2))
3.3333333333333335
3.33

round(x, 2) оставляет 2 знака после запятой, round(x) без второго числа округляет до целого. Округление — для вывода результата, в расчётах держи полное число.

Миссия: инженерный калькулятор

Скопируй программу в песочницу и запусти. Она спросит число зубьев двух шестерён и посчитает передаточное отношение. Попробуй разные значения: 40 и 20, 60 и 15. Передаточное отношение показывает, во сколько раз меняется скорость вращения.

# Калькулятор передаточного отношения
z_vedomaya = int(input("Зубьев ведомой шестерни: "))
z_veduschaya = int(input("Зубьев ведущей шестерни: "))

otnoshenie = z_vedomaya / z_veduschaya
print(f"Передаточное отношение: {round(otnoshenie, 2)}")
Зубьев ведомой шестерни: 40
Зубьев ведущей шестерни: 20
Передаточное отношение: 2.0

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

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

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

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

Контрольный вопрос. Какая команда превращает текст «40» в целое число 40, чтобы можно было считать?

Аint
Бprint
Вinput

Подсказка: Целое число по-английски integer. Команда называется так же сокращённо.

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

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

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

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

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

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

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

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

print(17 // 5)

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

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

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

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

print(17 % 5)

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

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

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

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

print(10 / 4)

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

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

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

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

x = 10 / 3
print(round(x, 2))

Подсказка: round(x, 2) округляет до двух знаков после запятой. 10/3 = 3.333…

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

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

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

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

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

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

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

Задание. Напиши код сам. Передаточное отношение — это число зубьев ведомой шестерни, делённое на число зубьев ведущей. Переменные z_vedomaya и z_veduschaya уже заданы. Напиши команду print, которая выведет их отношение.

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

z_vedomaya = 40
z_veduschaya = 20
# напиши ниже команду print, которая выведет z_vedomaya, делённое на z_veduschaya

Подсказка: Деление — знак /. Шаблон: print(z_vedomaya / z_veduschaya).

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

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

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

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

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

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

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

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

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

put = 100
vremya = 4
print(put / vremya)

Подсказка: Средняя скорость = путь / время. Обычное деление даёт дробное число (тут делится нацело, но тип дробный).

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

Задание. Напиши код сам. Средняя скорость = путь / время. Переменные put и vremya заданы. Напиши команду print, которая выведет среднюю скорость, округлённую до 2 знаков после запятой.

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

put = 100
vremya = 3
# напиши ниже команду print со средней скоростью, округлённой до 2 знаков

Подсказка: Сначала посчитай put / vremya, потом оберни в round(…, 2). Шаблон: print(round(put / vremya, 2)).

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

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

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

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

a = int("7")
b = int("3")
print(a // b + a % b)

Подсказка: Считай по очереди: 7 // 3 (деление нацело) плюс 7 % 3 (остаток). Потом сложи.

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

Задание. Напиши программу целиком (4-5 строк). Спроси у пользователя два числа зубьев командой input, преврати оба в целые числа через int, посчитай передаточное отношение (ведомая делить на ведущую) и выведи его округлённым до 2 знаков. Используй имена z_vedomaya и z_veduschaya.

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

# напиши программу из 4-5 строк:
# 1) z_vedomaya = int(input(...))
# 2) z_veduschaya = int(input(...))
# 3) посчитать отношение
# 4) print(round(..., 2))

Подсказка: z_vedomaya = int(input(«Ведомая: «)); z_veduschaya = int(input(«Ведущая: «)); otnoshenie = z_vedomaya / z_veduschaya; print(round(otnoshenie, 2)).

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

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

Что дальше

Теперь твои программы умеют спрашивать данные, превращать их в числа и считать по формуле с округлением. На следующем занятии научим программу принимать решения — реагировать на показание датчика командой if.

Итог: Теперь твои программы умеют спрашивать данные, превращать их в числа и считать по формуле с округлением. На следующем занятии научим программу принимать решения — реагировать на показание датчика командой if.

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

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