"); //-->
来源 | Python技术f-string 是 Python3.6 版本开始引入的特性,想必很多 Python 用户都基础性的使用过,通过它我们可以更加方便地向字符串中嵌入自定义内容,但 f-string 真正蕴含的功能远比大多数用户知道的要丰富,今天我们就来一起探索它们!
基础用法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 中我们可以按照下列方式灵活地控制浮点数的小数位数:
import math
pi = math.pi
print(f'{pi:.3f}')
print(f'{pi:.8f}')
# 输出
3.142
3.14159265
进制转换输出在 f-string 中,我们可以直接在输出时将目标转换成不同的进制进行输出:
number_10 = 1024
print(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编码
# 输出:
10000000000
2000
400
400
Ѐ
字符串对齐f-string 默认为右对齐,我们可以修改对齐方式:
text = 'python'
print(f'{text:>10}') # 右对齐
print(f'{text:<10}') # 左对齐
print(f'{text:^10}') # 居中对齐
print(f'{text:*^10}') # 居中对齐,用*补齐空白
n = 10
print(f'{text:#^{n}}') # 参数嵌套,居中对齐,用~补齐空白
# 输出:
python
python
python
**python**
##python##
标准化显示宽度当我们需要对 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 中快速地进行格式化:
import datetime
now = datetime.datetime.now()
print(f'{now:%Y年%m月%d号%H点%M分%S秒}')
# 输出:
2022年05月21号17点04分08秒
科学计数我们可以实现指定位数的科学计数法显示方式:
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 的几个技巧的文章就介绍到这里,这些骚操作你学会了吗?还有哪些狂拽炫酷吊炸天的代码,欢迎留言区讨论!
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
爱立信携手 Net Feasa 布局海事网络 融合公网级通信与智能体 AI 赋能航运
EEPW2018年3月刊(工业物联网)
海联达(Aigale)Ai-HD1 无线全高清套件拆解
瑞萨电子AI单元解决方案成功提高GE医疗(日本)日野工厂的生产力
紧凑型集成连接器模块抑制噪声 为人工智能应用实现以太网供电
GPU:面临工作负载转变的高吞吐架构
万家乐JSYZ5-AI燃气热水器电路图
基于Microchip MCU的AI/ML培训教程3
PowiGaN for AI Data Centers: Unmatched Power Density and Reliability
CSR8670CSR8675智能语音Alexa蓝牙方案开发
人工智能是如何帮助阻止造假者的?
赋能边缘端对话式人工智能
AI热潮引发多层陶瓷电容MLCC供应短缺
基于Microchip MCU的AI/ML培训教程2
基于VisitionX制造智能眼镜
继上次海联达Ai-ap100拆机之电源改造
WTC-AI太阳能热水器电路图
研华 COMPUTEX 首度整合全球伙伴大会 强化全球边缘 AI 生态系统联结
EEPW2018年6月刊(5G)
基于Ai-WB2-12F与Rd-04的雷达检测系统
AI竞争进入下半场:从“卷参数”到“卷单价”
英伟达CFO:我们早就知道内存大涨价要来了
电子元件培训教材
WTC-AI型太阳能热水器电路图
AI 驱动估值飙升:光通信半导体企业市值暴涨
基于Microchip MCU的AI/ML培训教程1
iCAN-4017 AI功能模块
Nigel AI赋能LabVIEW,NI用AI重塑测试新边界
尼吉康的事业介绍
释说芯语16:硬科技:构建企业未来之路(附PPT)