Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 18, 2012 08:04:13

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование вывода чисел в будущих версиях

Встретил здесь утверждение “Однако, со временем, форматирование строк будет удалено из языка”. Как в таком случае форматировать при выводе чисел? Например что будет вместо:

print '%2d  %8.3f %12.6f ' % (i, x, y)

Офлайн

#2 Ноя. 18, 2012 08:21:18

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

Форматирование вывода чисел в будущих версиях

Офлайн

#3 Ноя. 18, 2012 17:52:45

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование вывода чисел в будущих версиях

Спасибо, вроде ничего не забыли, хотя опять синтаксис новый
А модуль есть для версий до 2.6, чтобы к коду добавлять и всё по новому делать?

Офлайн

#4 Ноя. 19, 2012 04:05:21

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

Форматирование вывода чисел в будущих версиях

alien308
вроде ничего не забыли, хотя опять синтаксис новый
http://www.python.org/dev/peps/pep-3101/
в обосновании написано, почему отказываются от старого стиля
используя .format(), есть возможность использовать и отдельные аргументы, и кортеж, и словарь одновременно
также метод .format() можно переопределять (заменять своим), тем самым редактируя спецификаторы (или добавляя новые)



Офлайн

#5 Ноя. 20, 2012 09:14:15

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование вывода чисел в будущих версиях

Вот это из ссылка работает:

import datetime
"Today is: {0:%a %b %d %H:%M:%S %Y}".format(datetime.datetime.now())
А это нет
>>> "{0:%f}".format(10.11111)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Invalid conversion specification
Недопилили?
python2.7

Отредактировано alien308 (Ноя. 20, 2012 09:25:13)

Офлайн

#6 Ноя. 20, 2012 17:38:48

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

Форматирование вывода чисел в будущих версиях

alien308
Недопилили?
Для объекта datetime определен собственный спецификатор формата, в PEP3101 про это написано

Офлайн

#7 Ноя. 21, 2012 02:43:19

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

Форматирование вывода чисел в будущих версиях

alien308
>>> "{0:%f}".format(10.11111)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Invalid conversion specification

>>> '{0:f}'.format(10.5)
'10.500000'
>>>



Офлайн

#8 Ноя. 22, 2012 16:21:43

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Форматирование вывода чисел в будущих версиях

Спасибо, для реального форматирования надо так:

>>>'{0:6.2f}'.format(10.5)
' 10.50'

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version