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
进制



 

进制对照表

 

posted @ 2020-11-27 00:50  多测师张sir  阅读(209)  评论(0编辑  收藏  举报
GenerateContentList();