При форматировании числа в строку можно задать паддинг - заполнение нулями до нужной длины.
>>> '{}_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
A useful command when you encounter conflicts while cherry-picking:
tig HEAD $(git rev-parse CHERRY_PICK_HEAD 2>/dev/null) -- $(git diff --name-only --diff-filter=U | head -1)
#tricks@sudo_recast