Урок 2.2 · Программирование с нуля · Модуль 2. Данные и вычисления · По подписке
Цель урока: Понять, зачем превращать текст в числа и обратно, и посчитать сумму со скидкой: цену, количество и число процентов программа получает текстом.
Нужно знать заранее: Числа и строки
Зачем это нужно: Вы заказываете три кружки по 129,90 рубля. В магазине действует скидка, но её размер зависит от карты или дня: сегодня 10 %, завтра 20 %. Программа спрашивает число скидки — вы вводите 10, 20 или 30 и сразу видите, как меняется сумма к оплате. Цена, количество и скидка приходят в программу текстом: так приходит всё, что человек ввёл в форму или в input. Но текстом считать нельзя: «129.90» умножить на «3» не получится. Поэтому программа сначала превращает текст в числа, потом считает, потом округляет и превращает результат обратно в текст, чтобы вставить его во фразу «К оплате: 350.73 руб.». Этим и занимаются четыре команды ниже — у каждой одна работа.
Как это работает: кто за что отвечает. float — «сделай дробное число». float("129.90") даёт 129.9. Нужен там, где есть копейки: цена, вес, расстояние. int — «сделай целое число». int("3") даёт 3. Нужен там, где считают штуки: количество, возраст, число дней. Дробную часть int отбрасывает: int(3.7) — это 3, а не 4. round — «округли готовое число». round(350.72999, 2) даёт 350.73. Второе число в скобках — сколько знаков после точки оставить. int и round легко перепутать: int(3.7) — 3 (отбросил), round(3.7) — 4 (округлил). str — «сделай текст». str(350.73) даёт "350.73". Нужен, когда число склеивают с текстом через «плюс»: "К оплате: " + str(350.73). Без str будет ошибка: текст и число «плюсом» не складываются. Скидка — это число процентов. Его вводят через input() и сразу превращают в целое: discount = int(input()). input() всегда возвращает текст, поэтому без int() число процентов останется текстом, и считать им будет нельзя. Порядок в расчёте всегда такой: текст → float или int → считаем → round → str → печатаем. Откуда названия — так запомнить проще: int — от английского integer, «целый». Тот же корень у слова «интегральный» — цельный. float — «плавать»: у дробного числа точка плавает (129.9 → 12.99 → 1299), а цифры те же. round — «круглый»: округлить значит сделать круглым, ровным (3.7 → 4). str — от string, «верёвка»: текст — это верёвка, на которую нанизаны буквы. И главное: int, float и str отвечают на вопрос «во что превратить», а round — единственная, кто не превращает, а округляет уже готовое число.