(十二)Python学习之字符串格式化

(十二)Python学习之字符串格式化

一、百分号方式格式化

  1. 基本格式及说明

1.基本格式:

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

2.格式说明:
(key): 可选,用于选择指定的key;
flags: 可选,可供选择的值有:

+: 右对齐;正数前加正号,负数前加负号;
-: 左对齐;正数前无符号,负数前加负号;
空格: 右对齐;正数前加空格,负数前加负号;
0: 右对齐;正数前无符号,负数前加负号;用0填充空白处;

width: 可选,占有宽度;
precision: 可选,小数点后保留的位数;
typecode: 必选,可供选择的值有:

s: 获取传入对象的str()方法的返回值,并将其格式化到指定位置;
r: 获取传入对象的repr()方法的返回值,并将其格式化到指定位置;
c: 如果是整数,将数字转换成其unicode对应的值,并将其格式化到指定位置;如果是字符,将字符格式化到指定位置;
o: 将整数转换成八进制表示,并将其格式化到指定位置;
x: 将整数转换成十六进制表示,并将其格式化到指定位置;
d: 将整数、浮点数转换成十进制表示,并将其格式化到指定位置;
E/e: 将整数、浮点数转换成科学计数法,并将其格式化到指定位置;
F/f: 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位);
G/g: 自动调整将整数、浮点数转换成浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e);
%: 当字符串中存在格式化标志时,需要用 %%表示一个百分号;

二.Format方式格式化

  1. 基本格式及格式说明

1.基本格式:

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

2.格式说明:
fill: 可选,空白处填充的字符;
align: 可选,对齐方式(需配合width使用),可供选择的值有:

<: 内容左对齐;
: 内容右对齐(默认);
=: 内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效;
^: 内容居中;

sign: 可选,有无符号数字,可供选择的值有:

+: 正号加正,负号加负;
-: 正号不变,负号加负;
空格: 正号空格,负号加负;

#: 可选,对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示;
,: 可选,为数字添加分隔符,如:1,000,000;
width: 可选,格式化位所占宽度;
.precision: 可选,小数位保留精度;
type: 可选,格式化类型,可供选择的值有:

s: 格式化字符串类型数据;
空白: 未指定类型,则默认是None,同s;
b: 将10进制整数自动转换成2进制表示,然后格式化;
c: 将10进制整数自动转换为其对应的unicode字符;
d: 十进制整数;
o: 将10进制整数自动转换成8进制表示然后格式化;
X/x: 将10进制整数自动转换成16进制表示然后格式化;
E/e: 转换为科学计数法表示,然后格式化;
F/f: 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
G/g: 自动在E/e和F/f中切换;
%: 显示百分比(默认显示小数点后6位);

  1. 常用格式化
print("i am {}, age {}, {}".format("seven", 18, 'alex'))
print("i am {}, age {}, {}".format(*["seven", 18, 'alex']))
print("i am {0}, age {1}, really {0}".format("seven", 18))
print("i am {0}, age {1}, really {0}".format(*["seven", 18]))
print("i am {name}, age {age}, really {name}".format(name="seven", age=18))
print("i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18}))
print("i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33]))
print("i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1))
print("i am {:s}, age {:d}".format(*["seven", 18]))
print("i am {name:s}, age {age:d}".format(name="seven", age=18))
print("i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18}))
print("numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2))
print("numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2))
print("numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15))
print("numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15))

在这里插入图片描述
注:参数为列表时,前要加‘*’;参数为字典时,前要加‘**’。

猜你喜欢

转载自blog.csdn.net/weixin_38936626/article/details/86498101