python格式化输出
python 格式化输出
%s:字符串输出(str()的显示) 也能输出int类型与float类型
>>> a='12' >>> print("my age is %s"%(a)) my age is 12
输出整型
>>> a=12 >>> print("my age is %s"%(a)) my age is 12
输出浮点型
>>> a=12.5 >>> print("my age is %s"%(a)) my age is 12.5
%r:字符串输出 采用repr()的显示
%s与%r不同的是 %r会返回他所代表的对象
>>> import datetime >>> a=datetime.date.today() >>> print("today is %s"%(a)) today is 2020-11-26 >>> print("today is %r"%(a)) today is datetime.date(2020, 11, 26)
>>> a=12 >>> b='my' >>> c='age' >>> print("%s %r is %d"%(b,c,a)) my 'age' is 12
%c:单个字符
>>> a='9' >>> print("my age is %c"%(a)) my age is 9
输出多个字符时则报错
>>> a='12' >>> print("my age is %c"%(a)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: %c requires int or char
%d十进制整数输出
%i十进制整数输出
两者之间没有区别,就是有些函数中可能没有%i的参数却有%d,所以尽可能的用%d
>>> a=12 >>> print("my age is %d"%(a)) my age is 12
等于浮点型时只显示整数
>>> a=12.5 >>> print("my age is %d"%(a)) my age is 12
%o:八进制整数
>>> a=12 >>> print("my age is %o"%(a)) my age is 14
%x:十六进制整数
>>> a=12 >>> print("my age is %x"%(a)) my age is c
%f:浮点型
默认保留六位小数
>>> a=12 >>> print("my age is %f"%(a)) my age is 12.000000
超过则四舍五入
>>> a=12.1234567 >>> print("my age is %f"%(a)) my age is 12.123457
>>> a=12.1234564 >>> print("my age is %f"%(a)) my age is 12.123456
%%:字符'%'
>>> a=12 >>> print("成功几率为%d%%"%(a)) 成功几率为12%
格式化输出两个以上
可以把输出后的%理解为函数,%()括号中输入对应的实参即可
>>> a=12 >>> b='my' >>> c='age' >>> print("%s %s is %d"%(b,c,a)) my age is 12
按位字符串格式化输出
%s str字符串输出
%20s 向右对齐 字符串长度不同 调整的位置不同
%20.10s 向右对齐 取10位字符包括空格
%-20s 向左对齐
%-20.10 向左对齐 取10位字符包括空格
>>> a="welcome to baoan" >>> b="thank you" >>> print("%s %s"%(a,b)) welcome to baoan thank you >>> print("%20s %s"%(a,b)) #向右对齐 字符串长度不同 调整的位置不同 welcome to baoan thank you >>> print("%20.10s %s"%(a,b)) #向右对齐 取10位字符包括空格 welcome to thank you >>> print("%-20s %s"%(a,b)) #向左对齐 welcome to baoan thank you >>> print("%-20.10s %s"%(a,b)) #向左对齐 取10位字符包括空格 welcome to thank you
按位浮点型输出
%f 浮点输出 默认保留六位小数 从第7位开始四舍五入
%e 科学计数法
%g 浮点数字(根据值的大小采用%e或%f)
%.4f 取4位有效小数 如果取值位数超过小数部分位数则用0补充
%.4e 取4位有效小数 科学计数法
%.1g 取1位小数 值太小所以采用了e%科学计数法
>>> a=12.1234567 >>> print("my score is %f"%(a)) #浮点输出 默认保留六位小数 从第7位开始四舍五入 my score is 12.123457 >>> print("my score is %e"%(a)) #科学计数法 my score is 1.212346e+01 >>> print("my score is %g"%(a)) #%g 浮点数字(根据值的大小采用%e或%f) my score is 12.1235 >>> print("my score is %.4f"%(a)) #取4位有效小数 如果取值位数超过小数部分位数则用0补充 my score is 12.1235 >>> print("my score is %.4e"%(a)) #取4位有效小数 科学计数法 my score is 1.2123e+01 >>> print("my score is %.1g"%(a)) #取1位小数 值太小所以采用了e%科学计数法 my score is 1e+01
.format()函数输出
.format()函数会把传入的参数记录下来 ,并用{}调用
.format(a,b)位置从0开始 a的位置是0 b的位置是1
.format(a=a,b=b)) 设置变量来代替位置参数
.format()支持输出位置对齐与取字符
.format()可以使用大括号 {} 来转义大括号
>>> a="welcome to baoan" >>> b="thank you" >>> print("{}{}".format(a,b)) #用{}调用a,b参数 默认先调用a welcome to baoanthank you >>> print("{1}{0}".format(a,b)) #{}中指定参数位置 改变默认调用顺序 决定先调用哪一个 thank youwelcome to baoan >>> print("{1}{0}{0}{1}".format(a,b)) #{}中指定位置 可重复调用 thank youwelcome to baoanwelcome to baoanthank you
>>> print("{a}{b}".format(a=a,b=b)) #设置变量来代替位置参数 welcome to baoanthank you >>> print("{a}{b}{b}{a}".format(a=a,b=b)) #用变量来重复调用 welcome to baoanthank youthank youwelcome to baoan
>>> print("{a:20s}{b:20s}".format(a=a,b=b)) welcome to baoan thank you >>> print("{a:20.10s}{b:20.10s}".format(a=a,b=b)) #调整位置 取10位有效字符 包括空格 welcome to thank you
>>> print("{a}{{a}}{b}".format(a=a,b=b)) #使用{}转义{a} welcome to baoan{a}thank you
数字格式化
下表展示了 str.format() 格式化数字的多种方法:
^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制。
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:>10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 |
'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
|
1011
11
13
b
0xb
0XB
|
进制 |
进制对照表