- 填充和对齐格式
[索引]:[填充字符][对齐方式 <^>][宽度]
,如果只有一个数字的可以不写索引,
>>> '{0:*>10}'.format(10) ##右对齐
'********10'
>>> '{0:*<10}'.format(10) ##左对齐
'10********'
>>> '{0:*^10}'.format(10) ##居中对齐
'****10****'
>>> '{1:.2f} {0:.2f}'.format(1/3,1/7)
0.14 0.33
>>> '{0:.2f}'.format(1/3) #保留小数点后两位
'0.33'
>>> '{0:9.2f}'.format(1/3) #保留小数点后两位,但是使用空白填充符填充到总长度是9位
0.33
>>> '{0:0^9.2f}'.format(1/3) #遵循填充和对齐格式
000.33000
>>> '{0:b}'.format(10) #二进制
'1010'
>>> '{0:o}'.format(10) #八进制
'12'
>>> '{0:x}'.format(10) #16进制
'a'
>>> '{:,}'.format(12369132698) #千分位格式化
'12,369,132,698'
log_str = '| epoch {:3d} step {:>8d} | {:>6d} batches | lr {:.3g} ' \
'| ms/batch {:5.2f} | loss {:5.2f}'.format(
epoch, train_step, batch+1, optimizer.param_groups[0]['lr'],
elapsed * 1000 / args.log_interval, cur_loss)
if args.dataset in ['enwik8', 'text8']:
log_str += ' | bpc {:9.5f}'.format(cur_loss / math.log(2))
else:
log_str += ' | ppl {:9.3f}'.format(math.exp(cur_loss))