浅谈python之格式化字符串
来源:互联网 发布:淘宝樱木花道家鞋真吗 编辑:程序博客网 时间:2024/06/05 03:19
C:\Users\Test>python --versionPython 3.6.2
0x01 str.rjust()
str.rjust # 右对齐str.center # 居中str.ljust # 左对齐
- 三个方法殊途同归,笔者在此仅介绍str.rjust方法
>>>help(str.rjust)rjust(...) S.rjust(width[, fillchar]) -> str Return S right-justified in a string of length width. Padding is done using the specified fill character (default is a space).
- 一个必填参数,width,用于指定字符串总宽度
- 一个选填参数,fillchar,width>字符串长度时,用于填充缺少的字符,默认空格
>>> "loulan".rjust(10)' loulan'>>> "loulan".rjust(10,'*')'****loulan'
- 当width小于字符串长度时,以字符串长度为主
>>>"loulan".rjust(3)'loulan'>>> "loulan".rjust(3,'*')'loulan'
0x02 格式化操作符:%
%在字符串中是格式化操作符
>>> "我是%s,大家好"%"楼兰"'我是楼兰,大家好'
1. 转化类型 the conversion types
ascii()函数
返回一个可打印的对象字符串方式表示,如果是非ascii字符就会输出\x,\u或\U等字符来表示。与python2版本里的repr()是等效的函数>>> ascii('楼兰')"'\\u697c\\u5170'"
repr()函数与str()函数
- 相同 : 皆是将其他对象转化为字符串形式
- 不同:函数str() 用于将值转化为适于人阅读的形式,
而repr() 转化为适于解释器读取的形式
>>> '%d'%123.123 #小数格式化为整数'123'>>> '%d'%0o17 #八进制格式化为十进制'15'>>> '%o'%123 #十进制的123格式化为八进制'173'>>> '%o'%0o17 #八进制的17格式化为八进制'17'>>> '%x'%123 #十进制的123格式化为十六进制(小写)'7b'>>> '%X'%123 #十进制的123格式化为十六进制(大写)'7B'>>> '%e'%123 #十进制的123格式化为科学记数法表示'1.230000e+02'>>> '%f'%123 #十进制整数123格式化为浮点数,小数点后默认保留六位'123.000000'>>> '%g'%123456 '123456'>>> '%g'%1234567 #整数部分超过六位时采用科学记数法'1.23457e+06'>>> '%g'%123456.666 #整数部分不足六位但是总位数超过六位时,默认保留六位有效数字,五舍六入'123457'>>> '%g'%1234.5 #总位数小于等于六位时,原样输出'1234.5'
- 相同 : 皆是将其他对象转化为字符串形式
2. 转化标识符 the conversion flag characters
>>> '%#x'%123 '0x7b'>>> '%#o'%123'0o173'>>> '%10s'%'loulan'' loulan'>>> '%-10s'%'loulan''loulan '>>> '%.3f'%123.123123'123.123'>>> '%+d'%123'+123'
0x03 format()
笔者在这里向大家极力推荐使用format函数来格式化字符串
相对于格式化操作符’%’来说,更为强大,而且格式化操作符已经属于古董级了
官方文档里称fomat为mini-language,可见一斑
format_spec : [ [ fill ] align ] [ sign ] [ # ] [ 0 ] [ width ] [ grouping_option ] [ .precision ] [ type ]
- align
理论上要输出+00012这种格式时,
需要设置fill=’0’,然后align=’>’,然后sign=’+’,然后width=’5’;
即format_spec=’0>+5’
>>> format(12,'0>+5') #此时+计入宽度'00+12'
因此用到align=’=’
>>> format(12,'0=+5') #此时+未计入宽度'+00123'
- sign
>>> format(123,'> 5')' 123'>>> format(-123,'> 5')' -123'
- grouping_option
>>> format(1200000.1234,',') #小数部分未分割'1,200,000.1234'>>> format(-1200000,',') #十进制是三位一组'-1,200,000'>>> format(-1200000,'_')'-1_200_000'>>> format(1234,'_b') #二进制是四位一组'100_1101_0010
- type
example
format即是str的一个方法,也是一个内置函数
str.format()
可以元素的名称进行访问
>>> '{0}, {1}, {2}'.format('a', 'b', 'c')'a, b, c'>>> '{}, {}, {}'.format('a', 'b', 'c') # python3.1之后'a, b, c'>>> '{2}, {1}, {0}'.format('a', 'b', 'c')'c, b, a'>>> '{2}, {1}, {0}'.format(*'abc') # 可以利用*序列解包'c, b, a'>>> '{0}{1}{0}'.format('abra', 'cad') # 可以重复访问一个值'abracadabra'
可以通过元素的名称进行访问
>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')'Coordinates: 37.24N, -115.81W'
在冒号的后面添加format_spec
>>> '{:>10}'.format('aaa')' aaa'
format()
- usage:
format(value, format_spec='', /)
>>> format('loulan','*^10')'**loulan**
>>> format(123,'#o')'0o173'
因大多用法跟格式化操作符%相同,笔者便不再赘述
0x04 临别感言
呃。。上面type的n选项以及F选项,笔者实在是没测试明白,要是哪位大佬知道的话,还望不惜笔墨。
尴尬~~
阅读全文
1 0
- 浅谈python之格式化字符串
- python之字符串格式化(format)
- python笔记之字符串格式化
- python基础之字符串格式化
- python之字符串格式化(format)
- python之字符串格式化(format)
- Python基础之格式化字符串
- Python基础回顾之-格式化字符串
- Python学习之字符串格式化详解
- python 之 格式化字符串函数format()
- python基础学习之字符串的格式化
- Python学习之字符串格式化详解
- Python语言学习之二:字符串格式化
- python之字符串格式化(format)用法说明
- Python字符串格式化符号
- PYTHON 字符串格式化
- 字符串格式化(python)
- Python:字符串格式化
- 大数据【在centos中配置linux网络ping时碰到destination host unreachable的问题】
- select 关于iframe 的不同选择
- 在ThinkPHP中,in操作
- 例题8-13:环形跑道
- 流量如何变成有效转化率
- 浅谈python之格式化字符串
- 习题8-1:装箱(贪心)
- Python requests库中文乱码问题
- ISO格式的pe系统如何安装到U盘上
- java定义赋值输出二维数组
- 安装Scrapy过程笔记
- nginx web服务器配置
- 快速搭建 Node.js 开发环境以及加速 npm
- 如何在Dev c++里配置Artistic Style格式化工具