Количество пришло строкой
★☆☆базоваяИнтернет-магазин получает из формы заказа количество товара — строкой, как любой текст из формы. Цена одной штуки известна числом. Посчитайте стоимость заказа.
Как рассуждаем
- Смотрим на типы:
"12"в кавычках — строка,35— целое число. - Строку и число перемножать нельзя по смыслу:
"12" * 35повторит строку 35 раз. Сначала переводим строку в число черезint(). - Для отладки выводим типы до и после преобразования — так видно, что именно лежит в переменных.
# Исходные данные count_text = "12" # количество из формы заказа: строка price = 35 # цена одной штуки, руб. # Преобразование и расчёт count = int(count_text) total = count * price # Вывод print("Тип из формы:", type(count_text)) print("Тип после int():", type(count)) print("Стоимость заказа:", total, "руб.")
Тип из формы: <class 'str'> Тип после int(): <class 'int'> Стоимость заказа: 420 руб.
Проверка на других данных
count_text = "3" price = 990
Тип из формы: <class 'str'> Тип после int(): <class 'int'> Стоимость заказа: 2970 руб.
count_text * price не упадёт с ошибкой: строка умножится на число и повторится 35 раз — получится 121212…. Программа молча выдаст бессмыслицу. Поэтому тип данных «на входе» проверяют первым делом.
Исходная строка и число после преобразования лежат в разных переменных: count_text и count. Суффикс _text сразу подсказывает, что внутри строка.