python格式化字符%e_用%格式化Python字符串

Python语法中,有一种使用%来格式化字符串的用法。这种用法,很像C语言的sprintf函数,很多参数的含义都是一样的。

我们先来举个例子,看看基本语法格式:

>>> domain = 'https://www.pynote.net'

>>> str = 'website domain is %s' % domain

>>> str

'website domain is https://www.pynote.net'

>>>

>>> str2 = 'I built %s %d days\' ago' % (domain, 100)

>>> str2

"I built https://www.pynote.net 100 days' ago"

基本语法是,在待格式化的字符串中有以%所表示的引用,而引用的具体内容,来自字符串后面的那个%符号后面的变量。如果待格式化的字符串中有多个%所表示的引用,字符串后面%后面,就是一个tuple,里面按引用顺序排列各变量。

格式化%s

%s表示一个字符串,将后面对应位置的变量插入%s的位置。这可能是最简单的%格式化了。

>>> ss = 'abc'

>>> str = 'this %s is %s, so %s.' % (ss,ss,ss)

>>> str

'this abc is abc, so abc.'

格式化%d

%d表示这里应该插入一个数字。

>>> dd = 123

>>> str = '%d' % dd

>>> str

'123'

>>> str = '%+d' % dd

>>> str

'+123'

>>> str = '%10d' % dd

>>> str

' 123'

>>> str = '%010d' % dd

>>> str

'0000000123'

>>> str = '%-10d' % dd

>>> str

'123 '

上面的代码显示了%d有一些额外的可使用的符号,用来控制把一个数字格式化如字符串后的显示效果。这些符号不言自明,不需要另外的解释了吧。。。

格式化%x和%X

%x表示将数字按照十六进制插入字符串,%X表示十六进制中的字母大写。

>>> dd

123

>>> str = '%x' % dd

>>> str

'7b'

>>> str = '0x%X' % dd

>>> str

'0x7B'

>>> str = '0x%4X' % dd

>>> str

'0x 7B'

>>> str = '0x%04X' % dd

>>> str

'0x007B'

>>> '%#x' % 32 # # used to add 0x prefix automatically

'0x20'

我个人比较喜欢用%X,十六进制字母大写看起来更酷一点...:)

格式化%f

%f表示对一个浮点数进行字符串格式化。

>>> ff = 1.23456789

>>> str = '%f' % ff

>>> str

'1.234568'

>>> str = '%.4f' % ff # control how long after the dot

>>> str

'1.2346'

>>> '%15f'%ff # just like %f only with specific width

' 1.234568'

>>> '%-15f'%ff

'1.234568 '

>>> '%015f'%ff

'00000001.234568'

>>> '%15.2f'%ff # width.fraction number

' 1.23'

上面将浮点数格式化为字符串,看起来好像是在做四舍五入,其实不是哦,关于Python实现四舍五入的详细情况,请参考这篇文章:Python实现小数四舍五入的方法。

证明%f没有四舍五入的功能:

>>> ff = 2.675

>>> '%.2f' % ff

'2.67'

格式化%e和%E

%e和%E是一样的,都是将数字转换按照科学计数的方式表示的字符串。

>>> num = 12345678987654321

>>> '%e' % num

'1.234568e+16'

>>> '%20E' % num

' 1.234568E+16'

>>> '%-20e' % num

'1.234568e+16 '

格式化%c

%c表示将一个数字转化成对应的unicode字符。

>>> '%c' % 69

'E'

>>> '%c' % 70

'F'

>>> '%c' % 71

'G'

>>> '%c' % 23456

'宠'

>>> '%c' % 23457

'审'

格式化%o

%o表示将一个数组格式化成八进制表示。

>>> '%o' % 8

'10'

>>> '%o' % 16

'20'

>>> '%o' % 32

'40'

>>> '%10o' % 32

' 40'

>>> '%-10o' % 32

'40 '

>>> '%#o' % 32 # # used to add 0o prefix automatically

'0o40'

注意#这个小符号,如果是十六进制,它自动加0x,如果是八进制,它自动加0o。

好了,基本上常用的格式化符号都在上面了,如果后面遇到这里没有的,再加上去。以上就是用%格式化Python字符串的总结。Python程序使用%格式化字符串, 版本兼容性最好(f-string格式化的方式,要Python3.6开始才会有)。

-- EOF --

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值