• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
QQ糖_尤尤
博客园    首页    新随笔    联系   管理    订阅  订阅
Python格式化字符串一(%)

一,使用%操作符

%[(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

 

 

 

posted on 2020-07-01 17:03  QQ糖_尤尤  阅读(694)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3