文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

在Python中f-string的几个技巧,你都知道吗

2024-04-02 19:55

关注

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

最基础用法

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


print(f'1+1 = {2}')
#输出:1+1 = 2

a=1 + 1
print(f'1+1 = {a}')
#输出:1+1 = 2

print(f'1+1 = {1+1}')
#输出:1+1 = 2

自记录表达式

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


import math
a = 8
print(f'{math. log(8) = }')

#输出:math. log(8) = 2.0794415416798357

多行f-string

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


a = 1
b = 2
c = 3
s = (
    f'{a = }\n'
    f'{b = }\n'
    f'{c = }\n'
)
print(s)

#输出:
a = 1
b = 2
c = 3

在f-string中格式化日期

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


import datetime
now = datetime.datetime.now()
print(f'{now:%Y年%m月%d号%H点%M分%S秒}')

#输出:
2021年10月18号16点45分58秒

控制浮点数精度

在f-string中我们可以按照下列方式灵活地控制浮点数的小数位数:


import math
pi = math.pi
print(f'{pi: .3f}')
print(f'{pi:.8f}')

#输出
3.142
3.14159265

标准化显示宽度

当我们需要对f-string打印内容的显示最小宽度进行限制时,譬如打印出类似表格的结构,可以参考下面的例子:


for x in range(1,11):
    print(f'{x:02}|{x**2:3}/{x**5:6}')

#输出
01|  1/     1
02|  4/    32
03|  9/   243
04| 16/  1024
05| 25/  3125
06| 36/  7776
07| 49/ 16807
08| 64/ 32768
09| 81/ 59049
10|100/100000

修改为左对齐

f-string默认为右对齐,就像上面的例子,但我们可以像下面这样使用<修改显示模式为左对齐:


for x in range(1,11):
    print(f'{x:<2}|{x**2:<3}|{x**5:<6}')

#输出
1 |1  |1     
2 |4  |32    
3 |9  |243   
4 |16 |1024  
5 |25 |3125  
6 |36 |7776  
7 |49 |16807 
8 |64 |32768 
9 |81 |59049 
10|100|100000

设置科学计数法格式

我们可以参考下面的方式实现指定位数的科学计数法显示方式:


import math
pi = math.pi
print(f'{pi*100:.10e}')

#输出
3.1415926536e+02

控制有效数字位数

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


a=1312.3123123123123
print(f'{a:.10g}')
#输出:1312.312312

a=1312.3123123123123
print(f'{a:.3g}')
#输出:1.31e+03

会了吗?

到此这篇关于在Python中f-string的几个技巧的文章就介绍到这了,更多相关Python中f-string技巧内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯