📅  最后修改于: 2023-12-03 15:04:34.666000             🧑  作者: Mango
在Python 3.6及以上版本中引入的f-strings,是一种字符串格式化方式,具有更好的可读性和可维护性。
f-strings是一种简化的字符串格式化工具,可在字符串字面值中插入Python表达式。它们以字母f或F开头,后跟一个字符串字面值,其中包含一些花括号{},其中包含Python表达式。在evaluating(计算)这些表达式后,生成的字符串被插入花括号中。
示例:
name = 'John'
age = 30
print(f'My name is {name} and I am {age} years old.')
输出:
My name is John and I am 30 years old.
f-strings相比其他的字符串格式化方式(例如%
格式化、str.format()
)有许多优点
f-strings可以使字符串变量和Python代码更紧密地结合起来,使代码更易于阅读和维护。例如:
# 使用f-strings
print(f"My favorite animal is {'cat' if is_cat else 'dog'}.")
# 使用str.format()
print("My favorite animal is {}.".format('cat' if is_cat else 'dog'))
使用f-strings的代码更直观和易读。在使用其他字符串格式化方式时,需要将占位符和实际值分离开来,这使得代码更难读懂。
使用f-strings比其他格式化方式效率更高。它们在生成最终字符串时执行了最少的操作。当然,这种差异在大多数场景中不太明显,但对于一些需要高效字符串处理的应用程序可能会有所帮助。
f-strings让字符串字面值与代码更紧密地结合在一起,这使得在调试时更容易找出错误的位置。
f
或F
,例如f"Hello, {name}!"
。f'{value1}, {value2}'
。f'{value:>10}'
。f-strings允许在表达式内部调用函数。示例:
def greet(name):
return f"Hello, {name}!"
print(greet("John"))
输出:
Hello, John!
在表达式中用.<attribute>
来取变量的属性值,示例:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("John", 30)
print(f"{person.name} is {person.age} years old.")
输出:
John is 30 years old.
在表达式中用[<key>]
来取字典的值,示例:
my_dict = {'foo': 'bar'}
print(f"The value of 'foo' is {my_dict['foo']}.")
输出:
The value of 'foo' is bar.
使用循环可以动态地生成字符串。示例:
numbers = [1, 2, 3, 4, 5]
print(f"The numbers are {[str(i) for i in numbers if i%2==0]}")
输出:
The numbers are ['2', '4']
f-strings提供了一种更好的字符串格式化方式,可以使字符串变量和Python代码更紧密地结合起来。它们易于阅读和维护,高效运行时,调试能力强。同时,f-strings提供了一系列高级功能,例如在表达式内调用函数、取变量的属性值、取字典的值,以及在表达式中使用循环。