[英]variable number of digit in format string
這是編寫此格式化函數的簡潔方法:
def percent(value,digits=0):
return ('{0:.%d%%}' % digits).format(value)
>>> percent(0.1565)
'16%'
>>> percent(0.1565,2)
'15.65%'
問題是格式化具有給定位數的數字,我不喜歡同時使用'%'運算符和格式方法。
我喜歡這一個:
'{0:.{1}%}'.format(value, digits)
測試:
>> '{0:.{1}%}'.format(0.1565, 0)
'16%'
>> '{0:.{1}%}'.format(0.1565, 2)
'15.65%'
>>> def percent(value, digits=0):
... return '%.*f%%' % (digits, value * 100)
...
>>> percent(0.1565, 2)
'15.65%'
高級字符串格式(在PEP 3101中定義並記錄在7.1.3。格式字符串語法中 )似乎無法在一次傳遞中執行此操作。 (參見7.1.3.1。格式規范迷你語言 : precision
僅為integer
。)
來自文檔 :
最小字段寬度(可選)。 如果指定為'*'(星號),則從值的元組的下一個元素讀取實際寬度,並且要轉換的對象在最小字段寬度和可選精度之后。
例:
def percent(value, digits=0):
print '%.*f%%' % (digits, value*100)
>>> percent(0.1565, 2)
15.65%
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.