一,使用%操作符
%[(name)][flags][width].[precision]typecode
(name)可选,用于选择指定的key
flags 可选,可供选择的值有:
+右对齐;正数前加正好,负数前加负号;
-左对齐;正数前无符号,负数前加负号;
空格 右对齐;正数前加空格,负数前加负号;
0 右对齐;正数前无符号,负数前加负号;用0填充空白处
width 可选,占有宽度
.precision 可选,小数点后保留的位数
typecode 必选
s 获取传入对象的__str__方法的返回值,并将其格式化到指定位置
r 获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
c 整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
o 将整数转换成 八 进制表示,并将其格式化到指定位置
x 将整数转换成十六进制表示,并将其格式化到指定位置
d 将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
e 将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
E 将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
f 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
F 同上
g 自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数 法),并将其格式化到指定位置(如果是科学计数则是e;)
G 自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
% 当字符串中存在格式化标志时,需要用 %%表示一个百分号 注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式
格式字符 |
说明 |
格式字符 |
说明 |
%s |
字符串(采用str()显示) |
%r |
字符串 |
%c |
单个字符 |
%o |
八进制数 |
%d或者%i |
十进制数 |
%e |
指数(基底为e) |
%x |
十六进制数 |
%E |
指数(基底为E) |
%f或者%F |
浮点数 |
%% |
字符 |
例:
1.int型变str型
>>> x=12 >>> a=("%s")%x >>> a '12' >>> print(a) 12
2.%c单个字符
>>> x=12 >>> a=("%c")%x >>> a '\x0c' >>> print(a)
输出如下字符:
3.%f转换为浮点数
>>> x=12 >>> a=("%f")%x >>> a '12.000000' >>> print(a) 12.000000
4.%s与%r区别
在进行格式化输出时,%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别。
- %s ⇒ str(),比较智能
- %r ⇒ repr(),处理较为简单和直接
例:
>>> x='world' >>> print("Hello %s"%x) Hello world >>> print("Hello %r"%x) Hello 'world'
5.%%
当字符串中存在格式化标志时,需要用 %%表示一个百分号
>>> str="百分比显示:%.2f%%"%1.45 >>> print(str) 百分比显示:1.45% >>> str="百分比显示:%d%%"%78 >>> print(str) 百分比显示:78% >>> str="百分比显示:%d%%"%1.45 >>> print(str) 百分比显示:1%
6.按位置顺序依次输出
>>> str="I am %s,I'm %d years old!"%("Tom",16) >>> print(str) I am Tom,I'm 16 years old!
7.自定义key输出
>>> str="I'm %(name)s,I'am %(age)d years old!"%{"name":"Tom","age":16} >>> print(str) I'm Tom,I'am 16 years old!
利用字典的键值对
8.定义名字宽度为10,并右对齐。定义身高为浮点类型,保留小数点2位
>>> str="I'm %(name)+10s,I'm %(age)d years old,I'm %(height).2f"%{"name":"Tom","age":24,"height":1.787752} >>> print(str) I'm Tom,I'm 24 years old,I'm 1.79
9. 八进制、十六进制转换
>>> str=("原数:%d,八进制:%o,十六进制:%x"%(10,10,10)) >>> print(str) 原数:10,八进制:12,十六进制:a
10.科学计数法表
>>> str="原数:%d,科学计数法表示(e):%e,科学计数法表示(E)%E"%(100000000,100000000,100000000) >>> print(str) 原数:100000000,科学计数法表示(e):1.000000e+08,科学计数法表示(E)1.000000E+08