«

python---之f'{}'

时间:2023-3-1 20:36     作者:wen     分类: Python


怎样使用Use str.format()

str.format()是对%-formatting的改进。它使用正常的函数调用语法,并且可以通过对要转换为字符串的对象的format ()方法进行扩展。

使用str.format(),替换字段用大括号标记:

name = 'zhangsan'
age = 74
print("Hello, {}. You are {}.".format(name, age))

Hello, zhangsan. You are 74.

您可以通过引用其索引来以任何顺序引用变量:

print("Hello, {1}. You are {0}-{0}.".format(age, name))

Hello, zhangsan. You are 74-74.

但是,如果插入变量名称,则会获得额外的能够传递对象的权限,然后在大括号之间引用参数和方法:

person = {'name': 'Eric', 'age': 74}
print("Hello, {name}. You are {age}.".format(name=person['name'], age=person['age']))

Hello, Eric. You are 74.

你也可以使用**来用字典来完成这个巧妙的技巧:

person = {'name': 'Eric', 'age': 74}
print("Hello, {name}. You are {age}.".format(**person))

Hello, Eric. You are 74.

与f-string相比,str.format()绝对是一个升级版本,但它并非总是好的。

为什么 str.format() 并不好

使用str.format()的代码比使用%-formatting的代码更易读,但当处理多个参数和更长的字符串时,str.format()仍然可能非常冗长。

如果你有想要传递给字典中的.format()的变量,那么你可以用.format(** some_dict)解压缩它,并通过字符串中的键引用这些值,但是必须有更好的的方法

f-Strings:一种改进Python格式字符串的新方法
好消息是,F字符串在这里可以节省很多的时间。他们确实使格式化更容易。他们自Python 3.6开始加入标准库。您可以在PEP 498中阅读所有内容。

也称为“格式化字符串文字”,F字符串是开头有一个f的字符串文字,以及包含表达式的大括号将被其值替换。表达式在运行时进行渲染,然后使用format协议进行格式化。与往常一样,Python文档是您想要了解更多信息的最佳读物。

以下是f-strings可以让你的生活更轻松的一些方法。

简单例子

语法与str.format()使用的语法类似,但较少细节啰嗦。看看这是多么容易可读:

name = "Eric"
age = 74
f"Hello, {name}. You are {age}."

Hello, Eric. You are 74.

使用大写字母F也是有效的:

name = "Eric"
age = 74
F"Hello, {name}. You are {age}."

Hello, Eric. You are 74.

标签: python基础