Python Параметризация форматирования - PullRequest
2 голосов
/ 27 марта 2020

Поэтому мне было интересно, есть ли способ параметризации оператора форматирования

Например,

>>> '{:.4f}'.format(round(1.23456789, 4))
'1.2346

Однако есть ли способ сделать что-то подобное вместо этого

>>> x = 4
>>> '{:.xf}'.format(round(1.23456789, x))
'1.2346

1 Ответ

2 голосов
/ 27 марта 2020

Да, это возможно с небольшим количеством конкатенации строк . Проверьте код ниже:

>>> x = 4
>>> string = '{:.' + str(x) + 'f}'       # concatenate the string value of x
>>> string                               # you can see that string is the same as '{:.4f}'
'{:.4f}'
>>> string.format(round(1.23456789, x))  # the final result
'1.2346'
>>>

или, если вы хотите sh, сделать это без дополнительной переменной string:

>>> ('{:.' + str(x) + 'f}').format(round(1.23456789, x)) # wrap the concatenated string in parenthesis
'1.2346'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...