1. 简介
在Python 3.6中,引入了一种新的字符串格式化方式——f字符串(f-strings)。它允许在字符串字面值中引用变量并计算表达式。
1.1 什么是f字符串
f字符串是一种引用变量和表达式的格式化字符串的一种方式。它们以字母“f”开头,并把要引用的变量或表达式放在花括号“{}”中。在格式化时,Python将用相应的值替换每个占位符。
name = "Bob"
age = 20
print(f"My name is {name} and I am {age} years old.") # Output: My name is Bob and I am 20 years old.
在上面的示例中,我们使用了f字符串来引用变量name和age,通过在字符串字面值中使用花括号在运行时计算表达式。
2. 常见用法
f字符串可以与其他字符串常量和表达式组合使用。下面我们将学习一些常见的用法。
2.1 转换
可以使用转换来格式化变量。在f字符串中,您可以在花括号中使用冒号并指定转换。
decimal = 3.14159265359
print(f"Pi is approximately {decimal:.2f}.") # Output: Pi is approximately 3.14.
我们使用了冒号并指定转换为“.2f”来保留小数点后两位,这个参数与Python的内置round()函数的参数具有相同的含义,可以以匿名函数的方式传递。
2.2 表达式
f字符串允许在花括号中使用表达式来动态计算变量。
numbers = [1, 2, 3, 4, 5]
print(f"The last element in the list is {numbers[-1]} and the sum of the list is {sum(numbers)}.")
# Output: The last element in the list is 5 and the sum of the list is 15.
在上面的示例中,我们使用表达式sum(numbers)来计算列表的总和,并将其嵌入到f字符串中。
2.3 对象属性
您还可以使用花括号中的点表示法访问对象的属性。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Bob", 20)
print(f"My name is {person.name} and I am {person.age} years old.")
# Output: My name is Bob and I am 20 years old.
在上面的示例中,我们定义了一个Person类,并使用f字符串来打印出它的属性。
2.4 字符串常量
f字符串可以与其他字符串常量组合使用,以创建复杂的输出。
name = "Bob"
print(f"Hello, {name}. My name is C-3PO and I am fluent in over 6 million forms of communication.")
# Output: Hello, Bob. My name is C-3PO and I am fluent in over 6 million forms of communication.
在这个示例中,我们使用f字符串将变量name和其他字符串常量组合。
2.5 宽度、精度和填充
可以在冒号和格式化操作符之间设置宽度、精度和填充参数来更改计算结果的格式。
宽度是要打印的字符数,精度是小数点后要打印的位数,填充是要在打印值之前显示的字符。这里有些示例:
x = 7
print(f"{x:08}") # Output: 00000007
在这个示例中,我们使用“:08”的格式,它将在值之前填充零,以达到8位宽度。
x = 8.9
print(f"Value is {x:.2f}.") # Output: Value is 8.90.
在这个示例中,我们使用“.2f”的格式,它将保留小数点后两位。
s = "hello"
print(f"{s:-^30}") # Output: -----------hello------------
在这个示例中,我们使用“:-^30”的格式,它将在值之前添加分隔符,并且添加“-”直到30个字符宽度。
2.6 嵌套
使用f字符串的强大之处在于您可以嵌套花括号和引用多个变量。
name, age = "Bob", 20
print(f"Hi! My name is {name} and I am {age} years old. My name backwards is {name[::-1]}.")
# Output: Hi! My name is Bob and I am 20 years old. My name backwards is boB.
在这个示例中,我们使用f字符串嵌套了两个变量name和age,并使用name[::-1]访问了它的倒序字符串。
3. 总结
本文主要介绍了Python中的f字符串及其常见用法,包括转换、表达式、对象属性、字符串常量、宽度、精度和填充、嵌套等。f字符串提供了一种用于格式化字符串和引用变量及表达式的简单方法,而不需要编写繁琐的代码或使用冗长的字符串连接操作。