Преобразование задаётся явно
int("345") создаёт целое число 345, float("2.7") — число с плавающей точкой, str(42) — строку "42". Эти вызовы нужны, когда полученные данные имеют другой тип, чем требует дальнейшая операция.
Не всякая строка подходит для любого преобразования: int("2.7") вызывает ValueError, а не округляет десятичную запись.
Задание источника
В переменной temperature находится 36.6. Сначала преобразуйте значение в целое, затем в строку и выведите с подписью °C через пробел:
temperature = 36.6
int_value = int(temperature)
str_value = str(int_value)
print(str_value + " °C")
Ответ — 36 °C. Это упражнение на типы, не медицинская интерпретация температуры.
Усечение не равно округлению
Для конечного float функция int() отбрасывает дробную часть в направлении нуля. Поэтому int(36.6) равно 36, int(-3.5) — −3. Последний результат отличается от округления вниз, которое дало бы −4.
Если требуется ближайшее целое, используется другое правило, например round(); нельзя заменять его усечением без изменения результата задачи.
Текстовое представление
str_value хранит строку, поэтому её можно соединить с " °C". Кавычки вокруг литерала не выводятся. В исходных пояснениях рядом с print(str(...)) показаны кавычки как обозначение строкового значения; фактический print() этих внешних кавычек не добавляет.
Для произвольного пользовательского ввода нужно также решать, что делать с недопустимыми значениями. В текущем упражнении вход фиксирован и корректен, поэтому обработка ошибок не включена в минимальное решение.
Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Упражнение сохранено; усечение и вид вывода уточнены.