首页 > 学院 > 开发设计 > 正文

Python字符串格式化示例

2019-11-14 16:56:35
字体:
来源:转载
供稿:网友

  先看代码吧。

#!/usr/bin/env python#-*- coding: utf-8 -*-__author__ = 'jiang'__creattime__ = '2015/10/31 23:40'width = input('please enter width:')PRice_width = 10item_width = width - price_widthheader_format = '%-*s%*s'format = '%-*s%*.2f'print '=' * widthprint header_format % (item_width,'Item',price_width,'Price')print '-' * widthprint 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.40Pears                                         0.50Cantaloupes                                   1.92Dried Apricots(16 oz.)                        8.00Prunes(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...' % piPi : 3.141593...>>>'my age is %s ' % 42L'my age is 42'>>>'my age is %r' % 42L'my age is 42L'

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

  点击这里和我交流


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表