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

最基础用法

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

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

自记录表达式

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

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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中快速地进行格式化:

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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默认为右对齐,就像上面的例子,但我们可以像下面这样使用<修改显示模式为左对齐:

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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

设置科学计数法格式

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

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import math
pi = math.pi
print(f'{pi*100:.10e}')#输出
3.1415926536e+02

控制有效数字位数

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

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

会了吗?

百分之九十的人不知道?在Python中f-string的几个技巧相关推荐

  1. Python中字符串String去除出换行符(\n,\r)和空格的问题

    Python中字符串String去除出换行符和空格的问题(\n,\r) 在Python的编写过程中,获取到的字符串进场存在不明原因的换行和空格,如何整合成一个单句,成为问题. 方法: 一.去除空格 & ...

  2. python中string是什么意思_什么是Python中的String:您需要知道的一切

    本文将告诉您什么是Python中的string,并向您简要介绍了解该概念的所有细节.本文将介绍以下指针,如何创建字符串?如何从字符串访问字符?格式化字符串,让我们开始,然后,什么 本文将告诉您什么是P ...

  3. python基础包括什么-python中f是什么

    python中的f是format函数的缩写,用于格式化输出. format函数常见的用法是str.format(),其基本语法是通过{}和:来代替以前的%. 示例:>>>" ...

  4. python中的string模块

    String模块 ascii_letters 获取所有ascii码中字母字符的字符串(包含大写和小写) ascii_uppercase 获取所有ascii码中的大写英文字母 ascii_lowerca ...

  5. python中%f是什么意思

    1.格式符 例如: a = 'test'print 'it is a %s' %(a) 打印的结果就是 it is a test 2.单独看%,是一个运算符号,求余数. 例如: 求模运算,相当于mod ...

  6. python中f.read()与f.readline区别

    众所周知在python中读取文件常用的三种方法:read(),readline(),readlines(),今天看项目是又忘记他们的区别了.以前看书的时候觉得这东西很简单,一眼扫过,待到用时却也只知道 ...

  7. [转载] Python中的string模块的学习

    参考链接: Python当中string.whitespace 学习资料:http://docs.python.org/library/string.html#string.Formatter 感觉学 ...

  8. python中f点flush是什么函数_Python文件操作及内置函数flush原理解析

    1.打开文件得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 示例文件 '你好呀' 我是于超 嗯 再见 文件操作基本流程 f=open('chenli',encoding='ut ...

  9. 辨别 Python 中 load 和 loads 的小技巧

    load 和 loads 都是实现"反序列化",load 通过 json.load(open('*.json')) 这样的格式,从文件句柄中打开文件,加载到Python的变量中,并 ...

最新文章

  1. 测试openstack neutron的网络连通性
  2. GSMA公布2016年亚洲移动大奖提名名单
  3. 最大权闭合 图 讲解
  4. cocos2d-x按钮CCControlButton的用法
  5. DL之R-FCN:R-FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  6. cdlinux miniwdep 配置无线网卡
  7. 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)
  8. web性能测试基础 知识(引用)
  9. java dumpstack_Java获取执行进程的dump文件及获取Java stack
  10. 两个有序链表序列的合并_leetcode链表之合并两个排序的链表
  11. python图片隐写_基于python的LSB隐写与分析
  12. HTML5对表单的约束验证
  13. Spring项目启动后报连接MYSQL错误两则
  14. VS C++改变窗体背景色
  15. thinkphp 3.2.2 图片上传gif类型生成缩略图错误
  16. 苹果iOS11重磅改版App Store,开发者应该了解这些
  17. A4纸是多少像素大小?
  18. 作战效能评估系统模型
  19. 天融信上网行为管理如何做短信验证?
  20. Invalid namespace

热门文章

  1. 《中国人工智能学会通讯》——6.25 日落的教训
  2. wallfall瀑布流的jq实现
  3. JS作用域理解(声明提升)
  4. 用JAVA日志来写诗
  5. 无根树转有根树的一般方法
  6. 绘制对象iPhone开发基础教程 笔记
  7. PLSQL developer 连接不上64位Oracle 的解决方法
  8. J2EE总结--浅识JNDI
  9. 在51CTO安了家。。。。
  10. java临时的api,JAVA API-day03