当前位置: 首页> 技术文章> python格式化输出

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)
10111113b0xb0XB
进制



 

进制对照表


上一篇: 浅谈mysql多表练习题经验

下一篇: 软件测试之手工测试人员如何转测试开发?

QQ技术交流群

多测师官方学习交流
556733550

加入群聊