Какой результат даст вызов round(2.5) в современном Python 3?

AЦелое число 2, потому что Python округляет дробное .5 к ближайшему чётному числу
BЦелое число 3, потому что дробное .5 по школьному правилу всегда округляется вверх
CДробное число 2.0 типа float, потому что round() всегда сохраняет исходный тип float
DПроизойдёт исключение 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?
Тренировать Python в Telegram

Ещё вопросы по теме «Синтаксис и типы данных»