Python Base 字符串格式化输出

Python的字符串格式化输出

概述

summary = '''
    Python用一个tuple(其实可以不写tuple括号也可以)将多个值传递给模板,每个值对应一个格式符.
'''
example = '''
    e.g : 
    依次传值
    "I'm %s. I'm %d year old" % ('Hom', 30)
    词典传值
    "I'm %(name)s. I'm %(age)d year old" % {'name':'Hom', 'age':30}
'''

可以使用的格式符

#基本格式符
layout = '''
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符(chr()函数转换)
%b 二进制整数(只能用于字符串format方法和format函数,%不能用.)
%d和%i 十进制整数(带符号)
%u 十进制整数(不带符号)
%o 八进制整数
%x和%X 十六进制整数, 区别在于输出时大小写.
%e和%E 指数 (基底写为e或E)
%f和%F 浮点数
%g和%G 指数(e/E)或浮点数 (根据显示长度), 即%e和%f自动判断
%% 输出字符%
要是想输出%则要使用%%进行转义操作.
'''
#加强符
exactly = '''
(name): 命名,用于字典控制赋值
加强符: 正号+, 负号-, 空格 , 零0, 井号#


正号+ :表示正号或右对齐。01 数值显示正号; 02 数值或字符串从右向左 补齐输出长度 ,不足时 左侧补空格.
负号- :表示右对齐。01 数值或字符串从左向右 补齐输出长度 ,不足时 右侧补空格。
空格  :表示在正数的左侧填充一个空格,负数则不填充, 从而使得负数和正数对齐; 对字串无效。
零0 :表示使用0填充"左侧"多余空格部分。仅对数值起效, 不能和-一起用.
井号# :对于八进制和十六进制, 前面显示0或0x或0X
'''
#控制符
controller = '''
width: 显示宽度,总长度,会补齐空格. 该部分可以设为*, 此时长度由后面的元组中指定.
.precision: 对于数值, 表示小数点后精度; 对于数值转字符串, 表示字符串有效长度(包括.+-符号). 该部分可以设为*, 此时长度由后面的元组中指定.
一般使用*号代替

'''

实例

正号 及 零

# 正号 - 数值
a0 = "=%d=" % 10
a1 = "=%+d=" % 10
a2 = "=%+5d=" % 10
a3 = "=%+05d=" % 10
a4 = "=%05d=" % 10
print(a0)
print(a1)
print(a2)
print(a3)
print(a4)
<<<输出>>>
=10=
=+10=
=  +10=
=00010=
# 正号 - 补齐
b = "six" 
b0 = "=%s=" % b
b1 = "=%10s=" % b
b2 = "=%+10s=" % b
print(b0)
print(b1)
print(b2)
<<<输出>>>
=six=
=       six=
=       six=
# 负号 - 数值
a0 = "=%d=" % 10
a1 = "=%-d=" % 10
a2 = "=%-5d=" % 10
a3 = "=%-05d=" % 10
print(a0)
print(a1)
print(a2)
print(a3)
<<<输出>>>
=10=
=10=
=10   =
=10   =
# 负号 - 补齐
b = "six" 
b0 = "=%s=" % b
b1 = "=%-10s=" % b
print(b0)
print(b1)
<<<输出>>>
=six=
=six       =

16进制

c0 = "%d to hex is %x" %(100, 100)
c1 = "%d to hex is %#x" %(100, 100)
print (c0)
print (c1)
<<<输出>>>
100 to hex is 64
100 to hex is 0x64

空格

d0 = "=% d=" % 5
d1 = "=% d=" % -5
d2 = "=%  d=" % -5
print(d0)
print(d1)
print(d2)
<<<输出>>>
= 5=
=-5=
=-5=

控制 长度 及 截取

点号: 左侧指定输出长度, 右侧指定截取长度; 先截取再输出; 对数值 和 字串 生效

e = "string"
e0 = "=%5s=" % e # 指定输出长度
e1 = "=%.3s=" % e # 截取长度
e2 = "=%5.3s=" % e # 截取指定长度3,输出为指定长度5
e5 = "=%*.*s=" % (5, 3, 56.123456789) # e2 的动态写法
print(e0)
print(e1)
print(e2)
print(e5)
<<<输出>>>
=string=
=str=
=  str=
=string=
=  56.=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值