Python字符串格式化示例

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

先看代码吧。

#!/usr/bin/env python

#-*- coding: utf-8 -*-

__author__ = 'jiang'

__creattime__ = '2015/10/31 23:40'

width = input('please enter width:')PRice_width = 10

item_width = width - price_width

header_format = '%-*s%*s'

format = '%-*s%*.2f'

print '=' * width

print header_format % (item_width,'Item',price_width,'Price')

print '-' * width

print format % (item_width,'Apples',price_width,0.4)

print format % (item_width,'Pears',price_width,0.5)

print format % (item_width,'Cantaloupes',price_width,1.92)

print format % (item_width,'Dried Apricots(16 oz.)',price_width,8)

print format % (item_width,'Prunes(4 lbs)',price_width,12)

print '=' * width

ok,再让我们看看打印出来是什么样的。

==================================================

Item Price

--------------------------------------------------

Apples 0.40

Pears 0.50

Cantaloupes 1.92

Dried Apricots(16 oz.) 8.00

Prunes(4 lbs) 12.00

==================================================

看着还行,不过有个问题,在你给width赋值的时候尽量大一点。如果你赋值太小比如20,右边的价格就不会对齐。有兴趣的可以跑一边代码。

说几个关键的点。head_format = '%-*S%*s' ,字符串格式操作符%后面加s表示可以使用str格式化任意python对象。'-'表示左对齐。'*'表示可以接收字段宽度和精度。

下面是字符串格式化转换类型,或许你可以看看。

转换类型 含义

d,i 带符号的十进制整数

o 不带符号的八进制

u 不带符号的十进制

x 不带符号的十六进制(小写)

X 不带符号的十六进制(大写)

e 科学计数法表示的浮点数(小写)

E 科学计数法表示的浮点数(大写)

f,F 十进制浮点数

r 字符串(使用repr转换任意python对象)

s 字符串(使用str转换任意python对象)

关于更多的字符串转换类型你可以去网上搜索一下。

简单的转换:

>>>'Price of eggs : $%d' % 42

'Price of eggs : $42'

>>>from math import pi

>>>'Pi : %f...' % pi

Pi : 3.141593...

>>>'my age is %s ' % 42L

'my age is 42'

>>>'my age is %r' % 42L

'my age is 42L'

关于str和repr的区别,各位可以去搜索一下,我这里就不赘述了。

点击这里和我交流

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航