跳转到内容

Python F 字符串

来自代码酷
Admin留言 | 贡献2025年4月28日 (一) 21:12的版本 (Page creation by admin bot)

(差异) ←上一版本 | 已核准修订 (差异) | 最后版本 (差异) | 下一版本→ (差异)

Python F-字符串[编辑 | 编辑源代码]

F-字符串(Formatted String Literals)是Python 3.6引入的一种字符串格式化方法,它提供了一种简洁、直观的方式来嵌入表达式到字符串中。F-字符串以字母`f`或`F`为前缀,并使用大括号`{}`包含表达式,这些表达式会在运行时被求值并替换为对应的值。

基本语法[编辑 | 编辑源代码]

F-字符串的基本语法如下:

f"字符串内容{表达式}字符串内容"

其中,`表达式`可以是变量、算术运算、函数调用等任何有效的Python表达式。

示例[编辑 | 编辑源代码]

name = "Alice"
age = 25
print(f"My name is {name} and I am {age} years old.")

输出:

My name is Alice and I am 25 years old.

表达式求值[编辑 | 编辑源代码]

F-字符串中的表达式会在运行时被求值,这意味着可以在大括号内执行计算或调用函数。

示例[编辑 | 编辑源代码]

a = 5
b = 10
print(f"The sum of {a} and {b} is {a + b}.")

输出:

The sum of 5 and 10 is 15.

格式化选项[编辑 | 编辑源代码]

F-字符串支持多种格式化选项,可以通过在表达式后添加冒号`:`来指定格式。

数字格式化[编辑 | 编辑源代码]

pi = 3.1415926535
print(f"Pi rounded to 2 decimal places: {pi:.2f}")

输出:

Pi rounded to 2 decimal places: 3.14

对齐与填充[编辑 | 编辑源代码]

name = "Bob"
print(f"{name:>10}")  # 右对齐,宽度为10
print(f"{name:<10}")  # 左对齐,宽度为10
print(f"{name:^10}")  # 居中对齐,宽度为10

输出:

       Bob
Bob
   Bob

实际应用案例[编辑 | 编辑源代码]

日志记录[编辑 | 编辑源代码]

F-字符串非常适合用于日志记录,因为它可以方便地嵌入变量和表达式。

user = "admin"
action = "login"
time = "12:30"
print(f"[{time}] User '{user}' attempted to {action}.")

输出:

[12:30] User 'admin' attempted to login.

动态SQL查询[编辑 | 编辑源代码]

在数据库操作中,F-字符串可以用于构建动态SQL查询(注意:在实际应用中应使用参数化查询以防止SQL注入)。

table = "users"
column = "name"
value = "Alice"
query = f"SELECT * FROM {table} WHERE {column} = '{value}'"
print(query)

输出:

SELECT * FROM users WHERE name = 'Alice'

高级用法[编辑 | 编辑源代码]

嵌套大括号[编辑 | 编辑源代码]

如果需要在大括号内包含字面量的大括号,可以使用双大括号`模板:`或``。

print(f"{{This is in braces}}")

输出:

{This is in braces}

多行F-字符串[编辑 | 编辑源代码]

F-字符串可以跨越多行,使用三引号`"""`或``。

name = "Charlie"
message = f"""
Hello {name},
Welcome to our platform!
"""
print(message)

输出:

Hello Charlie,
Welcome to our platform!

调用函数和方法[编辑 | 编辑源代码]

可以在F-字符串中直接调用函数或方法。

def greet(name):
    return f"Hello, {name}!"

user = "Dave"
print(f"{greet(user)} How are you?")

输出:

Hello, Dave! How are you?

性能比较[编辑 | 编辑源代码]

F-字符串在性能上通常优于其他字符串格式化方法(如`%`格式化或`str.format()`),因为它们在编译时被转换为字节码,而不是在运行时解析。

性能测试示例[编辑 | 编辑源代码]

import timeit

# 使用 % 格式化
time_percent = timeit.timeit('"Name: %s, Age: %d" % ("Alice", 25)', number=100000)

# 使用 str.format()
time_format = timeit.timeit('"Name: {}, Age: {}".format("Alice", 25)', number=100000)

# 使用 f-string
time_fstring = timeit.timeit('f"Name: {"Alice"}, Age: {25}"', number=100000)

print(f"% formatting: {time_percent:.6f}")
print(f"str.format(): {time_format:.6f}")
print(f"f-string: {time_fstring:.6f}")

输出(示例):

% formatting: 0.012345
str.format(): 0.014567
f-string: 0.008901

总结[编辑 | 编辑源代码]

F-字符串是Python中一种强大且高效的字符串格式化工具,适用于从简单到复杂的各种场景。它们不仅语法简洁,而且性能优越,是Python 3.6及以上版本推荐使用的字符串格式化方法。