假设我有 3 个 python 字符串,我可以将它们全部格式化为 2 个分隔空格,如下所示:
h="hello"
m="my"
w="world"
print("{} {} {}".format(h,m,w))
或使用
print("%s %s %s" % (h,m,w))
现在假设我确定 h 和 w 都有值,但 m 可能是一个空字符串。上面的两个代码片段将产生 "hello{two speces here}world
。
我知道我可以使用不同的函数和条件表达式来通过代码进行格式化,例如在
print(h+" " + m+(" " if len(m)>0 else "") + w)
或者选择一个不同的格式化字符串
print(("{} {} {}" if len(m)>0 else "{}{} {}").format(h,m,w))
基于m的长度
我的问题是这可以使用格式字符串 完成吗? (例如,如果其参数不为空,将用 1 个空格填充的一些格式修饰符)。
最佳答案
不确定是否很方便,但有一种方法,根据字符串的“真实”值生成空间或不生成空间:
h="hello"
m="my"
w="world"
print("{}{}{}{}".format(h," "*bool(m),m,w))
结果:
hello my world
现在设置m
为空字符串,你得到
hello world
关于python - python字符串格式中的可选空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46926882/