что не так?(задача от Яндекс.Практикум)
Задача Очеловечим Анфису. Пусть она округляет точные значения так, как это делают люди. Точное значение — дробь — хранится в переменной temperature_exact. Выведите на экран строку вида За окном 39.3 градусов Цельсия. Это почти 40 Анфиса должна взять точное значение, отбросить знаки после запятой, добавить единицу и сообщить примерное значение, округлённое «вверх» — до ближайшего большего целого числа. Его Анфиса сохраняет в переменной temperature_approx.
temperature_exact = '39.3'
temperature_approx = int(flot(temperature_exact)) + 1
print("За окном " + temperature_exact + " градусов Цельсия. Это почти " + str(temperature_approx) + ".")
Ответы (3 шт):
Опечатались в названии класса float (у Вас flot).
Замените на:
temperature_approx = int(float(temperature_exact)) + 1
я поняла в чем ошибка)
temperature_exact = '39.3'
temperature_approx = int(float(temperature_exact)) + 1
print("За окном " + temperature_exact + " градусов Цельсия. Это почти " + str(temperature_approx))
Пусть она округляет точные значения так, как это делают люди.
Ваше округление работает не совсем корректно: вы отбрасываете дробную часть и добавляете 1. Это точно сработает неправильно, если число изначально целое.
К тому же, округлять числа вниз лучше не приведением типов, а делением нацело на 1
Как насчёт такого метода округления:
temperature_exact = '39.3'
temperature_approx = int((float(temperature_exact) + .5) // 1)
print("За окном " + temperature_exact + " градусов Цельсия. Это почти " + str(temperature_approx))
Примеры округления по такому принципу:
35.0 ~ 35
35.3 ~ 35
35.5 ~ 36
35.7 ~ 36
36.0 ~ 36
Т.е. соблюдается принцип математического округления.