python整数格式化表达式_Python字符串格式化表达式和格式化方法
Python格式化字符串由两种方式可以选择:一种是格式化表达式(Formatting Expression),一种是格式化方法(Formatting Method)。其中格式化表达式在全Python版本支持,而格式化方法在Python 2.6, Python 2.7和Python 3.1开始支持。
格式化表达式与格式化方法的通用形式如下:
'...%s...' %(values) #格式化表达式
'...{}...'.format(values) #格式化方法
格式化表达式
格式化表达式的完整形式如下([ ]表示可选):
'%[(keyname)[flags][width][.precision]typecode' %(values)
keyname
Python格式化字表达式支持使用keyname到values中的dictionary里面取对应的值:
>>>'%(qty)d and %(food)s' %{'qty':1, 'food': 'spam'}1 and spam
flags
类似C语言的printf打印时使用的标志位,比如是否用0填充,是否显示数字的正负号
width和precision
width表示整个文本的宽度,precision表示小数位数。如果precision < width,不必补0满足width,;如果precision > width,优先precision。width和precision都支持*,如果是这样的话,它们对应的值由values当中的下一项来确定:
>>>'%s and %*.*f' %('abc', 3, 5, 6.333333333) #width = 3, presion = 5,优先precision
'abc and 6.33333'
>>>'%s and %*.*f' %('abc', 5, 3, 6.333333333) #width = 5, presion = 3,不必补0满足width
'abc and 6.333'
typecode
类似C语言printf打印时使用的typecode,比如s表示字符串,d表示整数等等
格式化方法
格式化方法的格式化字符串比较丰富,完整形式如下:
'{fieldname component !conversionflag:formatspec}'.format(values)#其中formatspec的完整形式如下,[ ]表示可选
[[fill]align][sign][#][0][width][,][.precision][typecode]
fieldname
一个数字或者keywor参数名,数字用来标识从values中的第几个参数获取值,keyword参数形如name=value;如果不提供,就使用相对位置:
>>>'{0} and {1}'.format(0, 1)'0 and 1'
>>>'{a} and {b}'.format(a=0, b=1)'0 and 1'
>>>'{a} and {b}.format({'a':0,'b':1}) # 报错
KeyError:'a'
>>>'{} and {}'.format(0, 1) #不提供使用相对位置,不可以有的指定,有的不指定,会报错,相对位置在Python2.7和Python3.1中开始支持
'0 and 1'
component
使用.name或者[index/key]的形式,对于从values中匹配的项,进一步根据.name取属性(如果是对象),或者根据index/key取值(如果这个匹配项是数组/字典):
#.platform是sys的一个属性#[a]是values中字典的一个key#[2]是values中数组的index
>>>'{0.platform} and {1[a]} and {2[2]}'.format(sys, {'a': 1}, [0, 1, 2, 3])'linux and 1 and 2'
conversionflag
conversionflag可以是r,s,或者是a,表示调用repr,str和ascii内置函数对匹配项进行转换
fill和align
fill可以是任何字符,除了'{'和'}',表示对齐时使用的填充字符;
align可以是,=,^,分别表示左对齐,右对齐,在数值符号后使用fill,居中对齐;
>>>'{:$<10}'.format(100) #左对齐,7个$
'$$$$$$$100'
>>>'{:$=+10}'.format(100) #在符号后填充,6个$
'+$$$$$$100'
sign
表示数值符号,可以是+,-或者空格:
>>>'{: }'.format(100) #输出的100后面有空格
'100'
>>>'{: }'.format(-100) #输出100的空格被-占用
'-100'
#
表示显示八进制或者十六进制的前导标志0或者0x:
>>>'{:#0}'.format(100) #八进制表示
'00144'
>>>'{:#x}'.format(100) #十六进制表示
'0x64'
,(逗号,Python2.7和Python3.1开始有)
逗号表示1000分隔符:
>>>'{:,}'.format(10000)'10,000'
width和precision
width和precision的意思和格式化表达式中的一样,如果formatspec中包含嵌套的{},那么就和格式化标示符中使用*是一样的功能:
>>>'{0:{1}.{2}}'.format(6.333333, 5, 3) #前面有两个空格
'6.33'
typecode
和格式化表达式typecode是必选的不一样,格式化方法中的typecode是可选的,如果不指定,表示可以接受任何类型,但是如果一旦指定,就必须和values中的匹配项类型一致,但是也有例外,看下面例子:
>>>'{:s}'.format(6.33) #报错,不像格式化表达式一样,会自动转换为字符串
ValueError:Unknown format code 's' for object of type 'float'
>>>'{:i}'format(6.33) #报错,float无法转换成整型
VlaueError:Unknown format code 'i' for object of type 'float'
>>>'{:f}'.format(6) #可以整型转换成float没问题
'6.000000'
format方法
除了使用格式化表达式和格式化方法之外,Python 2.6和Python 3.0还支持format方法进行格式化:
>>>format(6.333, '.2f')'6.33'
Template方法
string模块的Template方法也可以格式化字符串:
>>>importstring>>>t = string.Template('$num = $title') #要替换的字段以$开头
>>>t.substitue({'num': 7, 'title':'Strings'}) #支持字典做参数
'7 = Strings'
>>>t.sustitute(num = 7, title = 'Strings') #支持keyword做参数
'7 = Strings'
python整数格式化表达式_Python字符串格式化表达式和格式化方法相关推荐
- python关键字中文意思_python 字符串只保留汉字的方法
如下所示: def is_chinese(uchar): """判断一个unicode是否是汉字""" if uchar >= u'\ ...
- python加密与解密_Python字符串加密与解密的方法总结
python对字符串做加密解密处理,大致有三种方法:base64,win32com.client和自定义加密解密算法,最安全可靠的方式,建议是自写加密解密算法. 1,使用base64: 代码示例: # ...
- python中字符串查找子串_Python字符串中查找子串的方法
Python字符串中查找子串的方法 发布于 2015-04-12 08:58:32 | 230 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对象.解释型计 ...
- python format函数实例_Python字符串格式化,format格式化函数详细使用
Python接触比较多的是字符串,那么操作字符串也就多.Python 支持格式化字符串的输出 . 尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符的字符串中. 代码 ...
- python字符数组输出_python字符串格式化输出
字符串格式化输出 : 字符串的拼接第一种方式 如:name = input("name:") age = input("age:") job = input(& ...
- python123格式化输出_python 字符串格式化输出 %d,%s及 format函数
旧式格式化方式:%s,%d 1.顺序填入格式化内容 s = "hello %s, hello %d"%("world", 100) print(s) 结果: ' ...
- python如何输出整数逆序_python字符串类型及操作
字符串索引&切片用法 Str[]对字符串进行索引,括号内为获取第几个元素 使用[M:N:K]根据步长对字符串切片 <字符串>[M:N]是可以缺失的,M缺失表示至开头,N缺失表示至结 ...
- python lambda表达式_Python中lambda表达式
Python中lambda表达式 1.lambda的应⽤用场景 如果一个函数有一个返回值,并且只有一句代码,可以使用 lambda简化. 2. lambda语法 lambda 参数列列表 : 表达式 ...
- python定界符有哪些_Python字符串
第二讲 list 列表 一.列表的基本介绍 什么是列表? 列表由一系列按特定顺序排列的元素组成,使用[]作为定界符,用逗号作为元素分隔符. List的特点 有序可变,可以是任意类型数据. 列表的数据结 ...
- 写出python字符串三种常用的函数或方法_Python字符串的使用和相关函数方法
1.创建字符串很简单,只要为变量分配一个值即可.例如:var1 = 'Hello World!' var2 = "Python Good" 2.python 访问字符串中的值. P ...
最新文章
- TensorFlow tfjs 0.10.3 发布
- 监控摄像机 我们要享受飞行的乐趣
- [code]代码格式1
- 分布式TCP压力测试工具 tcpcopy
- 【最详细】数据结构(C语言版 第2版)第六章课后习题答案 严蔚敏 等 编著
- miui通知栏要点两下_「MIUI玩机技巧84」MIUI12状态栏如何切旧版控制中心
- Dockerfile构建MySQL
- php100 代码,php_100 PHP源代码 - 下载 - 搜珍网
- 从零开始学习springBoot(Contextpath+修改默认idk)
- 031、jvm实战总结:动手实验:线上系统部署如果采用G1垃圾回收器,应该如何设置参数?
- python 标准库 —— 线程与同步(threading、multiprocessing)
- 黑马程序员——面向对象篇之封装
- 浅谈FFT、NTT和MTT
- JCreator中不能引入servlet包的解决办法
- wsdl文件怎么看服务器地址,wsdl文件 服务器地址
- excel文件转换成PDF格式
- Pandas数据分析第2部分
- 快收藏ReactOS 新手指南
- 关于日记账导入-外币
- java 浏览器设置字体大小_Sass可以在不使用REM的情况下访问浏览器的默认字体大小吗?...