当前位置:
首页 > Python基础教程 >
-
轻松驾驭Python格式化:5个F-String实用技巧分享
F-String(格式化字符串字面值)是在Python 3.6中引入的,它是一种非常强大且灵活的字符串格式化方法。
它允许你在字符串中嵌入表达式,这些表达式在运行时会被求值并转换为字符串,
这种特性使得F-String在编写Python代码时能够更简洁、更直观地处理字符串。
本文总结了5个实用的F-String技巧,相信一定能让你的代码输出更加的美观,清晰。
-
大数字
在Python的数据分析的项目中,经常接触到很大的数字,直接打印出大数字的话,很难看出它究竟有多少位。
n = 100000000
print(n)
# 100000000
用F-String来格式化,可以将大数字用千分位的形式显示出来。
# 千分位的分隔符用 _ 或者 , 都可以
print(f"{n:_}")
# 100_000_000
print(f"{n:,}")
# 100,000,000
-
浮点数
对于浮点数,除了可以用千分位分隔之外,还可以指定显示几位小数。
n = 1234.5678
print(f"{n:.2f}")
# 1234.57
print(f"{n:.0f}")
# 1235
print(f"{n:,.3f}")
# 1,234.568
print(f"{n:_.3f}")
# 1_234.568
显示前会自动做四舍五入的计算。
-
对齐
对齐不仅是让输出更加美观,更重要的是清晰,能够让我们更容易找到输出中的关键的信息。
比如,下面对齐输出name和value。
name = "var"
value = 100
# >20 表示右对齐,并且占用20个字符的空间
print(f"{name:>20}: {value}")
# <20 表示左对齐,并且占用20个字符的空间
print(f"{name:<20}: {value}")
# ^20 表示居中对齐,并且占用20个字符的空间
print(f"{name:^20}: {value}")
# 运行结果
var: 100
var : 100
var : 10
占用的20个字符的空间,包括var这个字符串,也就是说,占用的空间包含var和17个空格。
F-String格式化输出时,默认是用空格来占位的,我们也可以定义自己的占位符。
# 下面的例子分别用 _ # | 来占位
print(f"{name:_>20}: {value}")
print(f"{name:#<20}: {value}")
print(f"{name:|^20}: {value}")
# 运行结果
_________________var: 100
var#################: 100
||||||||var|||||||||: 100
-
日期
日期的格式化也是很常用的,python的日期格式化字符都可以在F-String中使用。
from datetime import datetime
now = datetime.now()
print(f"{now:%Y-%m-%d (%H:%M:%S)}")
# 2024-03-12 (00:17:05)
print(f"{now:%c}")
# Tue Mar 12 00:17:05 2024
print(f"{now:%I%p}")
# 12AM
-
变量描述
最后这个功能很有用,但估计没多少人知道。
所谓变量描述,也就是说在输出变量的时候,不仅输出变量的值,也输出变量的名字。
比如,一般我们输出变量是这样:
a = 10
b = 20
s = "hello"
print(f"{a + b}")
# 30
print(f"{s}")
# hello
这样输出之后,我们不知道30和hello是哪个变量的值。
所以,我们一般会像下面这样输出:
print(f"a + b = {a + b}")
# a + b = 30
print(f"s = {s}")
# s = hello
F-String有个技巧,可以避免自己手动去输入变量的名字(比如上面的a + b = 和 s =)。
print(f"{a + b = }")
# a + b = 30
print(f"{s = }")
# s = hello
这样不仅简化的写代码,而且变量名称发生变化的时候,也可以减少修改的地方。
来源:https://www.cnblogs.com/wang_yb/p/18067555
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
开启SQLSERVER数据库缓存依赖优化网站性能
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比