显示编号,最小宽度为0

时间:2019-05-23 15:35:15

标签: python string

我搜索了但只找到显示前导零的项目,而不是这种边缘情况: 我需要使用数字格式的Excel#等效项(导致0显示零长度或空字符串的结果)

如果我愿意

i = 0
'{}{:02}'.format('prefix', i)

我明白了

prefix00 

(如PEP 3101所预期),但是将宽度指定为0不会产生我所需要的。就像

i = 0
'{}{:0}'.format('prefix', i)

生产

prefix

而不是

prefix0

我目前所得到的。这在字符串格式功能中不一致吗?有没有办法在格式说明符中创建它(而不是对零的显式测试?)

2 个答案:

答案 0 :(得分:1)

Ternary conditional format pattern获胜:

for k in range(5):
    print( ('{}' if k == 0 else '{}{:02}').format('prefix', k))

输出:

prefix
prefix01
prefix02
prefix03
prefix04

模式根据k的值而变化-如果您在格式中使用的参数太多,则参数会抛出IndexError。


您也可以去

for k in range(5):
    print( 'prefix' if k == 0 else f'prefix{k:02}' )

使用python 3.6字符串文字插值。

答案 1 :(得分:0)

您可以使用此:

n=0
"{}{}".format("prefix",n or "")

f"prefix{n or ''}"