标签:
先看代码吧。
#!/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的区别,各位可以去搜索一下,我这里就不赘述了。
标签:
原文地址:http://www.cnblogs.com/Bingosay/p/4927297.html