如果他们高于0.001,我想输出为{:f},否则,如{:e}(指数)。如何在参数的值上调整格式说明符?
我不知道我是否可以在一个字符串格式化行中执行此操作,这不是在实际打印的行上调整,而是在其内部。是否允许使用lambda表达式? (附注:?他们在哪里允许,真的)
FTR,这是我的输出字符串:
print("{:f}".format(my_float))
如果他们高于0.001,我想输出为{:f},否则,如{:e}(指数)。如何在参数的值上调整格式说明符?
我不知道我是否可以在一个字符串格式化行中执行此操作,这不是在实际打印的行上调整,而是在其内部。是否允许使用lambda表达式? (附注:?他们在哪里允许,真的)
FTR,这是我的输出字符串:
print("{:f}".format(my_float))
我想我会用"{:g}"
。这将触发器来回指数符号和正常浮动符号之间取决于值:
>>> '{:g}'.format(0.001)
'0.001'
>>> '{:g}'.format(0.0000001)
'1e-07'
相反"{:e}"
这始终是指数...
>>> '{:e}'.format(0.001)
'1.000000e-03'
'{:g}'。格式(0.0001)表示为'0.0001' – thiruvenkadam 2015-02-10 14:31:46
添加条件到格式我能想到的一种方法
>>> x = 0.0001276
>>> '{:{type}}'.format(x, type='f' if x>0.001 else 'e')
'1.276000e-04'
>>> x = 0.01
>>> '{:{type}}'.format(x, type='f' if x>0.001 else 'e')
'0.010000'
这在我看来比lambda好。
弄死如果别的,你可以去或操作
(x>0.01 and 'f') or 'e'
心灵的')'末 – ForceBru 2015-02-10 14:16:33
你可以这样做:'打印((“{:F}”如果my_float> 0.001 else“{:e}”).format(my_float))',但看起来有些尴尬! – jonrsharpe 2015-02-10 14:17:52