Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 9, 2017 20:49:33

shirogorov
Зарегистрирован: 2017-06-09
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Автоматический вывод, функции repr и str

Вопросы по книге Марка Лутца.

На странице 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)

Офлайн

#2 Июнь 10, 2017 02:43:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Автоматический вывод, функции repr и str

В Python 2.7.5 есть различия

  
>>> n = 1.0 / 3
>>> n
0.3333333333333333
>>> str(n)
'0.333333333333'
>>> repr(n)
'0.3333333333333333'
>>>
По идее, этих различий не должно быть для чисел. Для других объектов это запросто может отличаться, поэтому и существуют две функции.



Офлайн

#3 Июнь 10, 2017 08:15:27

shirogorov
Зарегистрирован: 2017-06-09
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Автоматический вывод, функции repr и str

Благодарю за ответ

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version