>>> '{}_v{:05d}'.format('name', 125)
'name_v00125'
А что если паддинг тоже задан переменной? В таком случае мы можем добавить форматирование этой переменной внутри формата первой. Порядок переменных следует указывать в порядке появление открывающейся скобки.>>> '{}_v{:0{}d}'.format('name', 125, 5)
'name_v00125'
Или вот так>>> '{}_v:{:{:02d}{}}'.format('name', 125, 5, 'd')
'name_v00125'
А можно глубже? К сожалению (а может к счастью), уровень вложенности ограничен двумя. То есть, форматирование внутри форматирования внутри форматирования это ...
ValueError: Max string recursion exceededНо никто не запрещает использовать один тип форматирования внутри другого.
(Пример странный, но зато рабочий)
>>> ('{}_v{:{:%0.2dd}{}}' % 2).format('name', 125, 5, 'd')
'name_v00125'
С f-string можно использовать 4 уровня, по количеству доступных типов кавычек. Можно, но не нужно 😕f'''{f"""{f'{f"{x}"}'}"""}'''
#tricks
