Какой результат даст вызов round(2.5) в современном Python 3?
AЦелое число
2, потому что Python округляет дробное .5 к ближайшему чётному числуBЦелое число
3, потому что дробное .5 по школьному правилу всегда округляется вверхCДробное число
2.0 типа float, потому что round() всегда сохраняет исходный тип floatDПроизойдёт исключение
ValueError, потому что функция round() не работает с дробным .5Правильный ответ. Python использует банковское округление: при
.5 число округляется к ближайшему чётному.Разбор
В Python 3 round() при равноудалённом значении (.5) округляет к ближайшему чётному числу. Поэтому round(2.5) даёт 2 (чётное), а round(3.5) даёт 4 (тоже чётное). Это банковское округление — оно уменьшает систематическую ошибку при многократном округлении. Школьное правило «всегда вверх» в Python 3 не используется, и тип результата при вызове round(x) без второго аргумента — int, а не float.
Проверь себя · 1/3разбор после ответа
Пусть выполнено
a = [1, 2] и b = [1, 2]. Какие значения дадут выражения a == b и a is b?Ещё вопросы по теме «Синтаксис и типы данных»
- Какой результат вернёт вызов `type(10)`?
- После выполнения `y = str(42)` чему равен `y` и какой у него тип?
- Какая проверка наиболее корректна и идиоматична, чтобы убедиться, что переменная `x` равна `None`?
- Чему равно значение переменной `result` после выполнения строки `result = 3 < 5`?
- Что вернёт выражение `" Python ".strip()`?
- Все вопросы по «Синтаксис и типы данных» →