python3字符串格式化用format()好还是 % 表达式好

左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。

公众号:一点sir

在 Python 中,使用 format() 方法是更推荐的方式来进行字符串格式化,特别是在Python3中。虽然%表达式仍然可以在Python中使用,但已经不推荐使用了,新的项目中能不用就不用,谁知道哪天社区就不支持了。这玩意没有为啥,社区的那些开发人员觉得不好,投票决定,就改了。

接下来就讲一下官方流程化的话。

使用 format() 方法可以确保占位符与变量匹配的正确顺序,使代码更加可读且易于维护。format() 方法提供了多种方式来控制变量的匹配和排列顺序,使代码更具可读性和可维护性。以下是几种常用的方法:

位置参数

在格式化字符串中使用占位符 {},并使用 format() 方法的参数按顺序填充,这样可以保变量与占位符的匹配顺序是一致的。

python 复制代码
name = 'Alittle'
age = 33

introductions = 'Hello, my name is {} and I am {} years old'.format(name, age)
print(introductions)

输出:(下面例子输出都一样)

csharp 复制代码
Hello, my name is Alittle and I am 33 years old

注意,位置参数的顺序是很重要的,因为它们决定了哪个参数填充到相应的占位符中。

命名参数

在格式化字符串中使用命名占位符 {n},并使用 format() 方法的关键字参数进行填充,这样可以明确指定变量与占位符的对应关系,即使顺序发生变化,代码也不会受到影响。

python 复制代码
name = 'Alittle'
age = 33

introductions = 'Hello, my name is {n} and I am {a} years old'.format(n=name, a=age)
print(introductions)

索引参数

可以使用索引来指定变量与占位符的对应关系。在格式化字符串中使用数字索引 {0}{1} 等,并将相应的变量按顺序传递给 format() 。使用索引参数的好处是,可以在格式化字符串中多次使用同一个变量,而不必重复传递相同的值。

python 复制代码
name = 'Alittle'
age = 33

introductions = 'Hello, my name is {0} and I am {1} years old'.format(name, age)
print(introductions)

在Python 3.6之后(好像是)版本还引入了一种新的格式化字符串的方式,称为 f-string。它使用以 fF 开头的字符串,并使用花括号 {} 来包裹变量,像下面这样。

python 复制代码
name = 'Alittle'
age = 33

introductions = f'Hello, my name is {name} and I am {age} years old'
print(introductions)

f-string 的方式更加简洁和直观,就是在字符串前面需要几个f来表示这个是f-string,同时还能直接在字符串中执行表达式,使代码更加简洁和优雅。然而,如果使用的是较旧版本的 Python,可能不支持f-string。

反正就看着使用吧,比较正式一点的项目就用高版本的写法,自己练手的,我觉得没有任何区别,并没有啥本质上的关系,随自己高兴。

相关推荐
笨鸟先飞,勤能补拙5 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能5 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
浦信仿真大讲堂6 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study6 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境7 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境7 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd1237 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy12393102168 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb008 小时前
一个项目带你入门AI应用开发01
python
0566468 小时前
Python康复训练——常用标准库
开发语言·python·学习