格式化字符串

作者:追风剑情 发布于:2017-12-8 11:43 分类:Python

示例


# -*- coding: cp936 -*-
#字符串和元组一样,是不可修改的

#如果使用列表或者其他序列代替元组,那么序列会被解释为一个值,
#只有元组和字典可以格式化一个以上的值。

#如果要在格式字符串中包含百分号,可以这样写%%
print '字符串格式化'
format = "Hello, %s. %s enough for ya?"
values = ('world', 'Hot')
print format % values

print '%s plus %s equals %s' % (1,2,3) #右边的元组必须括起来,不然会报错

#格式化浮点数,并保留3位小数
format = "pi with three decimals: %.3f"
from math import pi
print format % pi

print '模板字符串'
from string import Template
s = Template('$x, glorious $x!')
print s.substitute(x='slurm') #替换$x

#如果替换的字段是单词的一部分,那么参数名就必须括号起
s = Template("It's ${x}tastic!")
print s.substitute(x='slurm')

#可以使用$$插入美元符号
s = Template("Make $$ selling $x!")
print s.substitute(x='slurm')

#除了关键字参数之外,还可以使用字典变量替换
s = Template('A $thing must never $action.')
d = {}
d['thing'] = 'gentleman'
d['action'] = 'show his socks'
print s.substitute(d)
#safe_substitute方法不会因缺少值或者不正确使用$字符而出错
print s.safe_substitute(d)

#详细讨论各个转换说明符
#简单转换
print 'Price of eggs: $%d' % 42 # %d(带符号的十进制整数)
print 'Hexadecimal price of eggs: %x' % 42 # %x(不带符号的十六进制(小写))
from math import pi
print 'pi: %f...' % pi # %f或者%F(十进制浮点数)
print 'Very inexact estimate of pi: %i' % pi # %i(带符号的十进制整数)
print 'Using str: %s' % 42L #Using str: 42
print 'Using repr: %r' % 42L #Using repr: 42L

print '字段宽度和精度'
#转换说明符可以包括字段宽度和精度。
#字段宽度: 转换后的值所保留的最小字符个数。
#精度: 对于数字为转换后应该包含的小数位数, 对于字符串是转换后的值所能包含的最大字符个数。
print '%10f' % pi #字段宽10
print '%10.2f' % pi #字段宽10, 精度2
print '%.2f' % pi #精度2
print '%.5s' % 'Guido van Rossum' #相当于截取前5个字符
print '%.*s' % (5, 'Guido van Rossum') #*代表从元组中读取精度(5)

print '符号、对齐和用0填充'
#在字段宽度和精度值之前可以放置一个"标志",该标志可以是零、加号、减号或空格。
#零表示数字将会用0进行填充。
print '%010.2f' % pi #字段宽10,前面用0填充
print '%-10.2f' % pi #减号用来左对齐,后面会用空格填充
print ('% 5d' % 10) + '\n' + ('% 5d' % -10) #正数前会加个空格,用来对齐正负数时很有用
print ('%+5d' % 10) + '\n' + ('%+5d' % -10) #无论正负输出时都带上符号


运行测试

11111.png

字符串格式化转换类型
转换类型
含义
d,i
带符号的十进制整数
o 不带符号的八进制
u 不带符号的十进制
x 不带符号的十六进制(小写)
X 不带符号的十六进制(大写)
e 科学计数法表示的浮点数(小写)
E 科学计数法表示的浮点数(大写)
f、F 十进制浮点数
g 如果指数大于-4或者小于精度值则和e相同,其他情况与f相同
G 如果指数大于-4或者小于精度值则和E相同,其他情况与F相同
C 单字符(接受整数或者单字符字符串)
r 字符串(使用repr转换任意Python对象)
s 字符串(使用str转换任意Python对象)

标签: Python

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号