Python:format()方法
转于:https://blog.csdn.net/zhang89xiao/article/details/53818906
博主:张肖的博客
描述:
format的格式
format_spec 的格式
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
功能:共4个功能
一)填充字符串
#只能用{ }来放标签
A、通过位置填充字符串:{0},表示format的左起第一个元素;
print('hello {0} i am {1}, {1} love {0}'.format('MM', 'GG'))
#输出:hello MM i am GG, GG love MM
B、通过key来填充
print('hello {0} i am {g}, {g} love {0}'.format('MM', g = 'GG'))
#输出:hello MM i am GG, GG love MM
C、通过下标填充
#format的参数,当'I', names = names, u = 'U',三种混用是,'I'类型放最前;
names = ['MM', 'GG']
print('hello {names[0]}, i am {names[1]}, {0} love {u}'.format('I', names = names, u = 'U'))
#输出:hello MM i am GG, I love U
D、通过字典的key填充
names = {'m':'MM', 'g':'GG'}
print('hello {names[m]} i am {names[g]}, {i} love {u}'.format(names = names, i = 'I',u = 'U'))
#输出:hello MM i am GG, I love U
E、通过对象的属性填充
class Names():
m = 'MM'
g = 'GG' print('hello {names.m}, i am {names.g}'.format(names = Names))
#输出:hello MM, i am GG
F、使用魔法参数填充
args = ['I', 'U']
kwargs = {'m':'MM', 'g':'GG'}
print('hello {m} , i am {g}, {} love {}'.format(*args, **kwargs))
#输出:hello MM , i am GG, I love U
二)格式转换
#b、d、o、x分别是二进制、十进制、八进制、十六进制
方式一:{:条件}.format(参数)
a = 3.14159
b = '{:.2f}'.format(a)
print(b)
#输出:3.14 c = '{:+.2f}'.format(a)
print(c)
#输出:+3.14
方式二:format(参数, '.条件'),不需要{: }
# '+.2f':此处只能是具体数字2,不能是字符变量;
b = format(3.14159, '+.2f')
print(b)
#输出:+3.14
| 参数 | 条件的格式 | 输出 | 描述 |
| 3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
| 3.1415926 | {:+.2f} | 3.14 | 带符号保留小数点后两位 |
| -1 | {:+.2f} | -1 | 带符号保留小数点后两位 |
| 2.71828 | {:.0f} | 3 | 不带小数 |
| 1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
| 0.25 | {:.2%} | 25.00% | 百分比格式 |
| 1000000000 | {:.2e} | 1.00E+09 | 指数记法 |
| 25 | {0:b} | 11001 | 转换成二进制 |
| 25 | {0:d} | 25 | 转换成十进制 |
| 25 | {0:o} | 31 | 转换成八进制 |
| 25 | {0:x} | 19 | 转换成十六进制 |
三)字符串对齐于填充
方式一:{:条件}.format(参数)
方式二:format(参数, '.条件'),不需要{: }
# format(参数, '.条件')中,'0>5'中,只能是5,不能是字符变量;
| 参数 | j条件格式 | 输出 | 描述 |
| 5 | {:0>2} | 05 | 数字补零 (填充左边, 宽度为2) |
| 5 | {:x<4} | 5xxx | 数字补x (填充右边, 宽度为4) |
| 10 | {:x^4} | x10x | 数字补x (填充右边, 宽度为4) |
| 13 | {:10} | 13 | 右对齐 (默认, 宽度为10) |
| 13 | {:<10} | 13 | 左对齐 (宽度为10) |
| 13 | {:^10} | 13 | 中间对齐 (宽度为10) |
四)其它
A、转义{和}符号
|
1
|
print '{{ hello {0} }}'.format('Kevin')
|
跟%中%%转义%一样,formate中用两个大括号来转义
B、format作为函数
|
1
2
|
f = 'hello {0} i am {1}'.format
print f('Kevin','Tom')
|
C、格式化datetime
|
1
2
|
now=datetime.now()
print '{:%Y-%m-%d %X}'.format(now)
|
D、{}内嵌{}
|
1
|
print 'hello {0:>{1}} '.format('Kevin',50)
|
E、叹号的用法
# !后面可以加s r a 分别对应str() repr() ascii()
# 作用:在填充前先用对应的函数来处理参数
|
1
2
|
print "{!s}".format('2') # 2
print "{!r}".format('2') # '2'
|
差别就是repr带有引号,str()是面向用户的,目的是可读性,repr()是面向python解析器的,返回值表示在python内部的含义
ascii()一直报错,可能这个是3.0才有的函数
Python:format()方法的更多相关文章
- python的str.format方法
format方法被用于字符串的格式化输出. print('{0}+{1}={2}'.format(1,2,1+2)) #in 1+2=3 #out 可见字符串中大括号内的数字分别对应着format的几 ...
- Python里format()方法基本使用
'''第一种:自然连接''' #format 连接字符串 str = '{}使用的python是{}版本'.format('我','3.6.5') print(str) #打印结果:我使用的pytho ...
- #python str.format 方法被用于字符串的格式化输出。
#python str.format 方法被用于字符串的格式化输出. #''.format() print('{0}+{1}={2}'.format(1,2,3)) #1+2=3 可见字符串中大括号内 ...
- Python中格式化format()方法详解
Python中格式化format()方法详解 Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法; Python是完全面向对象的语言, 任何东西都是对象; 字符串的参 ...
- Python入门之format()方法
在此列出format()方法的一些基本使用: >>> '{}{}{}'.format('圆周率是',3.1415926,'...') '圆周率是3.1415926...' >& ...
- Python 字符串格式化操作 - format方法
建议使用format()方法 字符串操作 对于 %, 官方以及给出这种格式化操作已经过时,在 Python 的未来版本中可能会消失. 在新代码中使用新的字符串格式.因此推荐大家使用format()来替 ...
- Python字符串类型格式化之format方法
python字符串格式化一般使用 format() 方法,用法如下: <模板字符串>.format(<逗号分割的参数>) 其中模板字符串中可以由一个或多个 {} 组成的 槽 , ...
- python format使用方法
#使用format 方法进行格式化 print("The number {1:} in hex is: {1:#x}, the number {0:} in oct is {0:o}&quo ...
- Python str方法总结
1.返回第一个字母大写 S.capitalize(...) S.capitalize() -> string 1 2 3 4 >>>a = 'shaw' >>> ...
- Python魔法方法总结及注意事项
1.何为魔法方法: Python中,一定要区分开函数和方法的含义: 1.函数:类外部定义的,跟类没有直接关系的:形式: def func(*argv): 2.方法:class内部定义的函数(对象的方法 ...
随机推荐
- TensorFlow_action
安装TensorFlow 包依赖 C:\Users\sas> pip3 install --upgrade tensorflow Collecting tensorflow Downloadi ...
- DNN自适应
- Android 开发之深入理解安卓调试桥各种错误解决办法
摘要: Android开发调试项目使用到安卓调试桥工具,Android Debug Bridge(ADB)位于sdk路径platform-tools文件夹,使用Android Studio或Eclip ...
- sonarQube使用maven进行检查
1.在maven的中找到setting配置文件.在setting.xml中增加sonarqube配置.如下: <profiles> <profile> <id>so ...
- 316python 基础之计算机基础、Python简介、变量、注释、基础数据类型初识、if、while、语句
一.计算机基础. cpu:相当于人的大脑,运算与控制中心. 速度 飞机 内存:4G,8G,16G....暂时存储,供给cpu数据. 速度 高铁.成本高,断电即消失. 硬盘:相当于你电脑的数据库,存储着 ...
- jquery中篇
一.attr 返回属性值 返回被选元素的属性值. 语法 $(selector).attr(attribute) 参数 描述 attribute 规定要获取其值的属性. 属性 • 属性 o attr(n ...
- SrpingCloud 之SrpingCloud config分布式配置中心搭建
1.搭建git环境 目的:持久化存储配置文件信息 采用码云 创建后 继续创建文件夹 用来区分不同的项目 下面就是git上存放配置文件了.环境的区分 dev sit pre prd 开发 ...
- Spring Cloud之Feigin客户端重构思想
应该重构接口信息(重点) toov5-parent 存放共同依赖信息 toov5-api api的只有接口没有实现 toov5-api-member toov5-api-order to ...
- 剑指offer之 调整奇数偶数数组位置
package Problem14; /* * 问题描述: * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位与数组的前半部分,所有偶数位与数组的 * 后半部分 */ publ ...
- MySQL- 用Navicat通过隧道连接到远程数据库
在企业中,为了安全地使用服务器,常常是用通过堡垒机才能连接到企业内部的服务器,当然也包括数据库. 于是我们时时需要通过堡垒机打隧道连到数据库,下面展示如何使用xshell用Navicat通过隧道连接到 ...