Форум сайта python.su
0
Вопросы по книге Марка Лутца.
На странице 164:
>>> b / (2.0 + a) # Автоматический вывод: выводится большее число цифр
0.80000000000000004
>>> print(b / (2.0 + a)) # Инструкция print отбрасывает лишние цифры
0.8
Если же пишу самостоятельно, выходит:
>>> b/(2.0+a)
0.8
>>> print(b/(2.0+a))
0.8
Вопрос№1: почему так происходит ? Мое предположение: в версии 3.6.1(которая у меня) пишется этот код по-другому в отличии от версии 3.0-3.1.
Вопрос№2: как сделать, чтобы выводился автоматический вывод чисел ?
На странице 165 схожая проблема с функциями repr и str.
Что должно было получиться:
>>> num = 1 / 3
>>> repr(num)# Используется для автоматического вывода: в форме как есть
‘0.33333333333333331’
>>> str(num) # Используется функцией print: дружественная форма
‘0.333333333333’
Что получилось:
>>> num=1/3
>>> repr(num)
'0.3333333333333333'
>>> str(num)
'0.3333333333333333'
Отредактировано shirogorov (Июнь 9, 2017 20:59:46)
Офлайн
857
В Python 2.7.5 есть различия
>>> n = 1.0 / 3 >>> n 0.3333333333333333 >>> str(n) '0.333333333333' >>> repr(n) '0.3333333333333333' >>>
Офлайн
0
Благодарю за ответ 
Офлайн