python字符串格式化

Python拥有两种字符串格式化类型%和format()


1.‘%’格式化

语法

%[(key)][flags][width].[precision]typecode

[]里的都为可选项。

key:字典的键

flags:符号可以使用' '(空格,不保留正号右对齐)、'+'(保留正号右对齐)、'-'(不保留正号左对齐)、'0'(缺位补零)。

(注:flags需要和width配合使用,用来格式化字符串的位置)

width:字符串长度(若小于原长度,则会全部输出。若大于不足为用空格补齐。)

precision:小数位精度。仅对数值型变量有效。

typecode:格式化模式。(常见的%d,%s等)





%的方法可以传实值、元组、字典等。(与c中的字符串格式化很像)


下面给出几个实例

a = "hello world"
b={'name':'jack','age':19}
c = 3.1415926

print("%(name)s is %(age)d years old and he says "%b+"%s"%a)    #(key) 为字典的key
print("%+10.3f"%c)                                              #右对齐
print('%s %s'%(a,a))                                            #利用元组拼接字符串
jack is 19 years old and he says hello world
    +3.142
hello world hello world

2.format()格式化

语法:

[[fill]align][flags][#][0][width][,][.precision][type]

format()的使用方式是str.format(需要格式化的字符),str中{位置(不写默认为0):方式}表示格式化方式


fill:填充字符,同样需要与width连用,当填充字符不为0或者' '(空格)时需要与align连用

align:对齐方式<左对齐,>右对齐,^居中,=右对齐仅对数字有效

flags:符号,同上。

#:仅对二进制、八进制、十六进制有效,显示其前缀。

,:十进制千分位分隔符。

width、type与precision同上


下面给几个例子

a={'name':'jeffey','age':21}
b=[100,'hello']
c=5.20
d=('jack',18)
e=8000
print("{name:*>10}".format(**a))                                     #当传入的值得字典时需要在字典前加**
print("{1:->8}++{0}".format(*b))                                     #当传入列表时需要在列别前加*
print("{:010.4}".format(c))                                          #精度不足时仅输出有效数字
print("name is {0} and he is {1} years old".format(d[0],d[1]))       #可用位置传参
print("{:#x}".format(e))                                             #16进制输出 

****jeffey
---hello++100
00000005.2
name is jack and he is 18 years old
0x1f40

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值