Python 显示最小宽度为0的数字

Python 显示最小宽度为0的数字,python,string,Python,String,我搜索过,但只找到显示前导零的项目,而不是此边缘案例: 我需要一个数字格式的Excel#的等价物(结果为0,显示长度为零的结果或空字符串) 如果我这样做 i = 0 '{}{:02}'.format('prefix', i) 我明白了 (正如PEP 3101所预期的),但是指定宽度为0并不能产生我所需要的。这有点像 i = 0 '{}{:0}'.format('prefix', i) 产生 prefix 而不是 prefix0 正如我现在得到的。这在字符串格式函数中是否不一致?是否有办法

我搜索过,但只找到显示前导零的项目,而不是此边缘案例: 我需要一个数字格式的Excel#的等价物(结果为0,显示长度为零的结果或空字符串)

如果我这样做

i = 0
'{}{:02}'.format('prefix', i)
我明白了

(正如PEP 3101所预期的),但是指定宽度为0并不能产生我所需要的。这有点像

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

prefix
而不是

prefix0
正如我现在得到的。这在字符串格式函数中是否不一致?是否有办法在格式说明符中创建此项(而不是显式测试为零?

用于win:

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

prefix
prefix01
prefix02
prefix03
prefix04
模式根据
k
的值进行更改-如果在其工作的格式中有太多的参数,则太少的参数将抛出索引器


你也可以去

for k in range(5):
    print( 'prefix' if k == 0 else f'prefix{k:02}' )
使用python 3.6字符串文字插值

你可以用这个:

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


你为什么需要这个?如果你只是不希望它出现,为什么还要指定格式?@ruohola可能这不是一个正在格式化的硬编码的
0
。@Blorgbeard-感谢你的有用评论,OP修改以澄清。这是有效的,但是“有没有办法在格式说明符中创建它(而不是显式测试零?)@Blorg不是我能想到的-这是实现它的最简单的方法-你也可以用一个formatfunction构造一些东西,它检查k或者在后面摆弄
strip('0')
,如果末尾只有一个数字,它是0等等。但是我认为它更笨重
n=0
"{}{}".format("prefix",n or "")
f"prefix{n or ''}"