写点什么

软件测试|f-string 格式化输出的这些用法,90% 的 Pythoner 不知道

  • 2023-06-15
    北京
  • 本文字数:1377 字

    阅读完需:约 5 分钟

f-srting

f-string 是 Python3.6 版本开始引入的特性,想必很多 Python 用户都基础性的使用过,通过它我们可以更加方便地向字符串中嵌入自定义内容,但 f-string 真正蕴含的功能远比大多数用户知道的要丰富,今天我们就来一起探索它们!


获取更多技术资料,请点击!

基础用法

f-string 最基础的用法很简单,如下例所示,在前缀 f 的字符串中向{}内直接填入要嵌入的值、变量或计算表达式:


print(f'1+1 = {2}')# 输出:1+1 = 2 a = 1 + 1print(f'1+1 = {a}')# 输出:1+1 = 2 print(f'1+1 = {1+1}')# 输出:1+1 = 2
name = 'kunkun'grade = '两年半'song = '鸡你太美'
print(f'我是{name},练习时长{grade},我的作品是{song}')
# 输出 我是kunkun,练习时长两年半,我的作品是鸡你太美
复制代码

自记录表达式

从 Python3.8 版本开始,f-string 引入了自记录表达式,使得我们可以按照下面的写法快速输出一些计算表达式:


import matha = 8print(f'{math.log(a) = }')
# 输出:math.log(a) = 2.0794415416798357
复制代码


注:Python3.8 以下不支持 f-string 中加入等号

多行格式化输出

通过最外层包裹小括号,我们可以像下面这样非常灵活地撰写多行 f-string:


a = 1b = 2c = 3s = (    f'{a = }\n'    f'{b = }\n'    f'{c = }\n')print(s)
# 输出:a = 1b = 2c = 3
复制代码

控制浮点数精度

在 f-string 中我们可以按照下列方式灵活地控制浮点数的小数位数:比如指定圆周率的位数


import mathpi = math.piprint(f'{pi:.3f}')print(f'{pi:.8f}')
# 输出3.1423.14159265
复制代码

进制转换输出

在 f-string 中,我们可以直接在输出时将目标转换成不同的进制进行输出:


number_10 = 1024print(f'{number_10:b}')  # 2进制print(f'{number_10:o}')  # 8进制print(f'{number_10:x}')  # 16进制小写print(f'{number_10:X}')  # 16进制大写print(f'{number_10:c}')  # ASCII编码
# 输出:100000000002000400400Ѐ
复制代码

字符串对齐

f-string 默认为右对齐,我们可以修改对齐方式:


text = 'python'print(f'{text:>10}')  # 右对齐print(f'{text:<10}')  # 左对齐print(f'{text:^10}')  # 居中对齐print(f'{text:*^10}')  # 居中对齐,用*补齐空白n = 10print(f'{text:#^{n}}')  # 参数嵌套,居中对齐,用~补齐空白
# 输出: pythonpython python**python**##python##
复制代码

格式化日期

针对日期类型的变量,我们可以参考下面的方式,直接在 f-string 中快速地进行格式化:


import datetimenow = datetime.datetime.now()print(f'{now:%Y年%m月%d号%H点%M分%S秒}') # 输出:2022年05月21号17点04分08秒
复制代码

科学计数

我们可以实现指定位数的科学计数法显示方式:比如显示圆周率


import mathpi = math.piprint(f'{pi*100:.10e}') # 输出3.1415926536e+02
复制代码

控制有效数字位数

我们还可以控制所显示数字的有效数字位数,即从左开始第一个不为 0 的数字往右一共显示的个数,当位数低于整数部分时会自动变成科学计数法格式:


a = 1312.3123123123123print(f'{a:.10g}')#输出:1312.312312 a = 1312.3123123123123print(f'{a:.3g}')#输出:1.31e+03
复制代码

总结

关于在 Python 中 f-string 格式化输出的几个技巧的文章就介绍到这里,这些骚操作你学会了吗?还有哪些狂拽炫酷吊炸天的代码,欢迎留言区讨论!


获取更多技术资料,请点击!


搜索微信公众号: 霍格沃兹测试学院,学习更多测试开发前沿技术

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试|f-string格式化输出的这些用法,90%的Pythoner不知道_霍格沃兹测试开发学社_InfoQ写作社区