Python3格式化输出
来源
笨办法学Python一书中是基于Python2的例子,我不想换Python2,在练习Python输出语句时想试试一次输出多个变量值。
方法
print("%s,%d,%d"%(name ,age ,school))
注意:双引号后面没有逗号“,”,C/C++printf()函数中间是有一个逗号的,注意区分。
如果不适用格式化输出,可以直接在引号后面加逗号“,”后接变量名,但是这样就需要将字符串拆开,原来每个格式化字符出直接使用变量名,详情见下图
- 将print()语句中输出部分断开成几行,使用三个双引号
你可以在一组三引号之间放入任意多行的文字
print(""“Hello
GOood evenning
see you”"")
格式化输出控制符及其含义
%% 输出百分号
%c 字符及其ASCII码
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中
%r 优先用repr()函数进行字符串转换
%s 优先用str()函数进行字符串转换
字符串格式控制
%[(name)][flag][width][.][precision]type
name:可为空,数字(占位),命名(传递参数名,不能以数字开头)以字典格式映射格式化,其为键名
flag:标记格式限定符号,包含±#和0,+表示右对齐(会显示正负号),-左对齐,前面默认为填充空格(即默认右对齐),0表示填充0,#表示八进制时前面补充0,16进制数填充0x,二进制填充0b
width:宽度(最短长度,包含小数点,小于width时会填充)
precision:小数点后的位数,与C相同
type:输入格式类型,请看上面
str.format()格式控制
{[name][:][[fill]align][sign][#][0][width][,][.precision][type]}
用{}包裹name命名传递给format以命名=值 写法,非字典映射,其他和上面相同
fill = <any character> #fill是填充字符
align = "<" | ">" | "^" #align是对齐方式,<是左对齐, >是右对齐,^是居中对齐。
sign = "+" | "-" #sign是符号, +表示在正数前面显示正号, -表示左对齐
# 八进制显示0,十六进制显示0X或者0x
0 数字前面填充0而不是空格
width = integer #width是数字宽度,表示总共输出多少位数字
precision = integer #precision是小数保留位数
type = "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%" #type是输出数字值是的表示方式
比如b是二进制表示;比如E是指数表示;比如X是十六进制表示例子
%r 与 %s 和 %d?
%r 用来做 debug 比较好,因为它会显示变量的原始数据(raw data),而其它的符
号则是用来向用户显示输出的。
%r 用来 debug 最好,而其它格式符则是用来向用户显示输出的。