如果他們高於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