Skip to main content
 首页 » 编程设计

python之空数值类型 int 格式说明符

2025年05月04日7zhujiabin

有没有办法将“空”数字类型传递给数字格式说明符并让它打印与该说明符相关联的空格?

即。

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+"|"