有没有办法将“空”数字类型传递给数字格式说明符并让它打印与该说明符相关联的空格?
即。
n = "Scientific:"
v = 123.321
strfmt = "%5.4E"
output = "%s|"+strfmt+"|"
print output % (n, v)
> Scientific:|1.2332E+02|
v = EMPTY
print output % (n, v)
> Scientific:| |
最终目标是处理不完整的行,而无需在循环时自适应地更改格式字符串
perline = 3
n = ["1st:","2nd:","3rd:","4th:","5th:","6th:"]
v = [1.0, 2.0, 3.0, 4.0]
strfmt = "%5.4E"
output = ("%s|"+strfmt+"| ")*perline+"\n"
for args in map(EMPTY,*[iter(n),iter(v)]*perline):
print output % args
> 1st:|1.0000E+00| 2nd:|2.0000E+00| 3rd:|3.0000E+00|
> 4th:|4.0000E+00| 5th:| | 6th:| |
为了执行上面的代码,我用 None 替换了 EMPTY,尽管当您将 None 传递给格式字符串时会出现错误
请您参考如下方法:
仅使用数字格式是无法做到这一点的。你需要一些逻辑:
strfmt = "%5.4E"
v = None
if v in [None, '']:
output = "%s| |"
else:
output = "%s|"+strfmt+"|"
