Я работаю над фрагментом кода, в котором говорится, что это должно работать в Python 3:
"{0:.{?}f}".format(t, precision).center(width)
Где: t - число с плавающей запятой, ширина - целое число, точность - целое число.
Я все время получаю это сообщение об ошибке:
return "{0:. {?} f}". format (t, precision) .center (width) KeyError: '?'
Может кто-нибудь указать мне в правильном направлении?
1 ответ
Вместо того:
"{0:.{?}f}".format(t, precision).center(width)
Пытаться:
"{0:.{1}f}".format(t, precision).center(width)
Просто измените это ?
на 1
, потому что то, что находится внутри внутренних фигурных скобок, используется как ключ или индекс.
(Упрощенный) пример
.center()
просто создаст отступы с обеих сторон, я проигнорировал это здесь.
"{0:.{1}f}".format(14.6, 10)
# Outputs: '14.6000000000'
#Be careful with floating point, though
"{0:.{1}f}".format(14.6, 50)
#'14.59999999999999964472863211994990706443786621093750'
Похожие вопросы
Новые вопросы
python-3.x
По вопросам программирования Python, относящегося к версии языка 3+. Используйте более общий тег [python] для всех вопросов Python и добавляйте его только в том случае, если ваш вопрос зависит от версии. Используйте теги [python-2.x] для вопросов Python 2.
?
в качестве идентификатора - это сделать его ключом в dict, а затем использовать оператор распаковки dict,**
, чтобы передать его вformat
в качестве ключевого слова. аргумент. Например,"{0:.{?}f}".format(123.456, **{'?':7}).center(20)
.