Python 字符串格式化方法总结

数据森麟

共 2873字,需浏览 6分钟

 · 2021-03-07


公众号后台回复“图书“,了解更多号主新书内容

作者:数据人阿多

来源:DataShare

背景

字符串格式化的主要使用场景是让变量打印出来,让人看着美观、易于查看。有时会直接print出来;有时会把这些内容写到文件里面,也就是进行日志记录。比如日志文件,设置好格式,后期在查询问题时,就可以快速定位。

字符串格式化就类似于手机APP界面一样,UI、排版设计都是为了使人机交互更加直观,内容让人看起来更美观、更舒服。

字符串格式化方法

  • 方法 1
    在 python 2.6 之前,利用 百分号% 占位符,进行格式化

>>> name = '张三'
>>> print('哈喽,%s'%name)
哈喽,张三


  • 方法 2 ---------- 现阶段使用最多的方法
    Python2.6 引入,性能比 % 更强大,字符串的 format 方法

>>> name = '张三'
>>> '哈喽,{}'.format(name)
'哈喽,张三'


  • 方法 3 ---------- 推荐使用的方法
    为了进一步简化格式化方法,Eric Smith 在2015年提交了 PEP 498 -- Literal String Interpolation 提案。字符串开头加上一个字母 f ,是在 Python3.6 新加入的字符串格式化方法

>>> name = '张三'
>>> f'哈喽,{name}'
'哈喽,张三'



推荐大家用最新的方法

推荐方法常规用法

设定浮点数精度

需要加一个 :(冒号)再加一个 .(英文句号)然后跟着小数点位数最后以f(float)结尾

num = 3.1415926   #山巅一寺一壶酒
print(f'圆周率保留两位小数为:{num:.2f}')

#圆周率保留两位小数为:3.14

数字格式化为百分数

方法与浮点数格式化类似,但是要用%代替结尾的f

a = 1
b = 3

c = a / b

print(f'百分数为:{c:%}')
#百分数为:33.333333%

print(f'百分数保留两位小数为:{c:.2%}')
#百分数保留两位小数为:33.33%

格式化 datetime 对象

支持的格式详见官方文档:
https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes

import datetime

now = datetime.datetime.now()
print(f'{now:%Y-%m-%d %H:%M:%S}')
#2021-01-19 16:44:32

字符串前补零

{var:0len}方法来进行字符串补零,len是最终返回字符串的长度

num = 123
print(f"{num:05}")
#00123

字符串居中

想要实现字符串居中,可以通过 var:^N 的方式。其中var是你想要打印的变量,N是字符串长度。如果N小于var的长度,会打印全部字符串。

test = 'hello world'

print(f'{test:^20}')
#    hello world     

print(f'{test:*^20}')
#****hello world*****

print(f'{test:^2}')
#hello world
进制转换
print(f'{7:b}')
#111

bases = {"b""bin"
         "o""oct"
         "x""hex"
         "X""HEX"
         "d""decimal"}

for n in range(1,21):
    #print(n)
    for base,desc in bases.items():
        print(f'{desc}:{n:5{base}}',end=' '*5)
    print()
进制转换

参考文章

  • https://miguendes.me/73-examples-to-help-you-master-pythons-f-strings

  • https://mp.weixin.qq.com/s/0F06lMbJSqN2msX4bNl2Aw

◆ ◆ ◆  ◆ 

麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:






数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。


管理员二维码:

猜你喜欢

 卧槽!原来爬取B站弹幕这么简单

 厉害了!麟哥新书登顶京东销量排行榜!

 笑死人不偿命的知乎沙雕问题排行榜

 用Python扒出B站那些“惊为天人”的阿婆主!

 你相信逛B站也能学编程吗

浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报