Найти - Пользователи
Полная версия: Автоматический вывод, функции repr и str
Начало » Python для новичков » Автоматический вывод, функции repr и str
1
shirogorov
Вопросы по книге Марка Лутца.

На странице 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'
py.user.next
В Python 2.7.5 есть различия
  
>>> n = 1.0 / 3
>>> n
0.3333333333333333
>>> str(n)
'0.333333333333'
>>> repr(n)
'0.3333333333333333'
>>>
По идее, этих различий не должно быть для чисел. Для других объектов это запросто может отличаться, поэтому и существуют две функции.
shirogorov
Благодарю за ответ
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB