美文网首页
Python学习笔记六·字符串的格式化

Python学习笔记六·字符串的格式化

作者: ReiChin_ | 来源:发表于2018-04-25 08:45 被阅读0次

在Python中我们采用format % value的方式格式化字符串。格式化操作符%的左边是要被格式化的字符串,右边需要的操作数。format中我们可以使用%s%d%f等转换说明符来说明想要得到什么样的转换结果,当value有多个值时,最好用()将其包裹在一起。
基本转换说明符由下面的4个部分组成。

  • %字符(必须):标记转换说明符的开始。
  • 转换标识(可选):-表示左对齐,+表示在转换值之前要加上正负号,空白字符表示正数之前保留空格,0表示转换值若位数不够则用0填充。
  • 最小字段宽度(可选):转换后的字符串至少应具有该值指定的宽度。如果是*则在元组中读取。
  • 精度(可选):放在(.)后。如果转换的是实数,精度值就表示出现在小数点后的位数,如果转换的是字符串,则表示最大字段宽度。如果是*则在元组中读取。
  • 转换类型(必须):参照下表。
转换类型 含义
d,i 带符号的十进制整数
o 不带符号的八进制
u 不带符号的十进制
x 不带符号的十六进制(小写)
X 不带符号的十六进制(大写)
e 科学计数法表示的浮点数(小写)
E 科学计数法表示的浮点数(大写)
f,F 十进制浮点数
C 单字符(接受整数或者单字符字符串)
r 字符串(使用repr转换任意Python对象)
s 字符串(使用str转换任意Python对象)

接下来我们具体的探讨转换说明符的使用。

一、简单用法

print "小明的身高:%dcm" % 180
print "10的八进制:%o" % 10
print "10的十六进制:%X" % 10
import math
print "π:%f" % math.pi
print "用str格式化:%s" % 55L 
print "用repr格式化:%r" % 55L
image.png

二、宽度和精度

print "%.5s" % 'Hello Python!' #  取字符串的前5个字符
import math
print "π:%.2f" % math.pi # 保留2位小数
print "π:%010f" % math.pi # 长度为10位,不够用0填充
print "π:%010.2f" % math.pi # 长度为10位,保留2为小数,长度不够用0填充
image.png
总长度和精度也可以用*表示,此时的数据从元组中读取。
print "%.*s" % (5, 'Hello Python!') #  取字符串的前5个字符
import math
print 'π:%+0*.*f' % (10, 2, math.pi) # 长度为10位,保留2为小数,长度不够用0填充,加正负号
image.png

三、映射变量

在字符串中我们可以使用%(key)的形式,来映射字典中的value

user_dict = {'name' : '张三', 'num' : 666}
message = '%(name)s,欢迎您!您是我们的第%(num)d位用户。'
print message  % user_dict
image.png

四、实战·打印超市购物小票

width = 46 # 总宽度
price_width = 12 # 单价宽度
count_width = 12 # 数量宽度
subtotal_width = 6 # 小计宽度

item_width = width - price_width - count_width - subtotal_width

header_format = '%-*s%-*s%-*s%*s' # 表头
item_format = '%-*s%-*.2f%-*s%*.2f' # 内容
total_format = '%-*s%*.2f' # 合计

print '=' * width
print header_format % (item_width, '名称', price_width, '单价', count_width, '数量', subtotal_width, '小计')
print '-' * width
print item_format % (item_width, '苹果', price_width, 8.88, count_width, 2, subtotal_width, 8.88 * 2)
print item_format % (item_width, '鸡蛋', price_width, 10.56, count_width, 1.76, subtotal_width, 10.56 * 1.76)
print item_format % (item_width, '牙膏', price_width, 15.9, count_width, 1, subtotal_width, 15.9 * 1)
print '-' * width
print total_format % (width - subtotal_width, '合计:', subtotal_width, 52.25)
print '=' * width
image.png

相关文章

  • Python中使用生成器实现杨辉三角

    其中输出部分运用了字符串的格式化知识,在我的另一篇简文《Python学习笔记》中有记录python中字符串的格式化...

  • python基础知识(3)

    python字符串 python转义字符 python字符串运算符 python字符串格式化 python格式化操...

  • 今日事今日毕

    python学习: 格式化字符串:占位符%(%s表示字符串,%d表示整数等等);‘{}’.format格式化。...

  • Python中的字符串

    Python中的字符串 对Python中的字符串常用函数的笔记, 方便查用. 格式化操作符% %通过匹配不同的字符...

  • Python学习-中英文字体格式化补充

    查看所有Python相关学习笔记 文章参考:Python学习-格式化本文参考文章 中英文混合的格式化问题解决方案 ...

  • 字符串的格式化操作

    旧式字符串格式化%运算符,位置格式化(python2) str.format字符串格式化(python3,它存在一...

  • python字符串格式化符号与内建函数资料表

    python字符串格式化符号: Python 的字符串内建函数 Python 的字符串常用内建函数如下:

  • 4.2 Python

    4.2.1. 格式化字符串   在Python中,有两种格式化字符串的方式,在Python2的较低版本中,格式化字...

  • Python学习笔记六·字符串的格式化

    在Python中我们采用format % value的方式格式化字符串。格式化操作符%的左边是要被格式化的字符串,...

  • python字符串总结

    总结一下在学习过程中遇到的字符串问题。 格式化操作符(%) "%"是Python风格的字符串格式化操作符%r——优...

网友评论

      本文标题:Python学习笔记六·字符串的格式化

      本文链接:https://www.haomeiwen.com/subject/jwdzkftx.html