Я делаю это в Python 2:
"(%d goals, $%d)" % (self.goals, self.penalties)
Что такое версия Python 3?
Я попытался найти примеры в Интернете, но продолжал получать версии Python 2.
python
python-3.x
string
JoseBazBaz
источник
источник
Ответы:
Вот документы о синтаксисе «нового» формата. Примером может быть:
Если оба
goals
иpenalties
являются целыми числами (т. Е. Их формат по умолчанию в порядке), его можно сократить до:И поскольку параметры являются полями
self
, есть также способ сделать это, используя один аргумент дважды (как отметил @Burhan Khalid в комментариях):Разъяснение:
{}
означает только следующий позиционный аргумент с форматом по умолчанию;{0}
означает аргумент с индексом в0
формате по умолчанию;{:d}
- следующий позиционный аргумент в десятичном целочисленном формате;{0:d}
- аргумент с индексом в0
десятичном целочисленном формате.Есть много других вещей, которые вы можете сделать при выборе аргумента (используя именованные аргументы вместо позиционных, доступ к полям и т. Д.), А также многие параметры формата (заполнение числа, использование разделителей тысяч, отображение знака или его отсутствие и т. Д.). Еще несколько примеров:
Примечание. Как отмечали другие, новый формат не заменяет прежний, оба доступны как в Python 3, так и в более новых версиях Python 2. Кто-то может сказать, что это вопрос предпочтений, но ИМХО, новая версия намного более выразительна, чем старая, и должна использоваться при написании нового кода (если, конечно, он не ориентирован на более старые среды).
источник
"({0.goals} goals, ${0.penalties})".format(self)
"conversion rate: {:.2%}".format(self.goals / self.shots)
? У меня отлично работает и так ... (Python 3.4) Обратите внимание, что в нем нетf
, я прошу форматировать в процентах, а не в виде числа с плавающей запятой."{:.2f}%".format(float_num)
отлично работает для обоих.$
нет особого значения ни в синтаксисе старого формата, ни в новом, поэтому он должен присутствовать в сгенерированной строке без изменений.Python 3.6 теперь поддерживает интерполяцию сокращенных буквальных строк с помощью PEP 498 . В вашем случае новый синтаксис выглядит просто:
Это похоже на предыдущий
.format
стандарт, но позволяет легко делать такие вещи, как :источник
Эта строка работает как есть в Python 3.
источник
Мне нравится такой подход
Обратите внимание на добавленные d и s в скобки соответственно.
вывод будет:
источник