当前位置: 首页 > news >正文

Python中f - 字符串(f-string)

在 Python 中,f - 字符串(f-string) 是一种简洁高效的字符串格式化方法,于 Python 3.6 引入。

f-string 基本语法

fF 为前缀的字符串,使用 {表达式} 嵌入变量或计算内容:

name = "Python"
version = 3.11
print(f"我正在学习 {name} {version} 版本")  # 输出:我正在学习 Python 3.11 版本

直接嵌入变量

将变量值直接插入字符串:

age = 25
score = 95.5
print(f"年龄:{age},分数:{score}")  # 输出:年龄:25,分数:95.5

支持表达式计算

{} 内可直接写入运算表达式,自动计算结果:

a = 10
b = 3
print(f"{a} + {b} = {a + b}")       # 输出:10 + 3 = 13
print(f"{a} 的平方是 {a **2}")      # 输出:10 的平方是 100
print(f"是否偶数:{a % 2 == 0}")    # 输出:是否偶数:True

调用函数或方法

{} 中支持直接调用函数或对象方法:

def get_greeting():return "Hello"text = "hello world"
print(f"{get_greeting()}! {text.upper()}")  # 输出:Hello! HELLO WORLD

格式化数值与日期

通过 {表达式:格式说明符} 控制输出格式:

pi = 3.1415926
print(f"π ≈ {pi:.2f}")  # 输出:π ≈ 3.14from datetime import datetime
now = datetime(2025, 8, 17, 15, 30)
print(f"当前日期:{now:%Y年%m月%d日}")  # 输出:当前日期:2025年08月17日
print(f"当前时间:{now:%H:%M:%S}")     # 输出:当前时间:15:30:00

处理引号冲突

混合使用单双引号避免语法冲突:

name = "Alice"
print(f'她的名字是 "{name}"')  # 输出:她的名字是 "Alice"
print(f"他说: '我叫{name}'")   # 输出:他说: '我叫Alice'

嵌套访问复杂结构

直接访问字典、列表等嵌套数据:

user = {"name": "Bob", "info": {"age": 30, "city": "Beijing"}}
print(f"姓名:{user['name']},年龄:{user['info']['age']}")  # 输出:姓名:Bob,年龄:30

注意事项

  1. 必须添加 fF 前缀
    缺少前缀时 {} 会被当作普通文本处理。

  2. 表达式内不能直接使用反斜杠 \
    需提前定义转义字符变量:

    newline = "\n"
    print(f"换行符:{newline}结束")
    
  3. 性能优势
    f-string 在编译时解析,效率高于 % 格式化和 str.format()

http://www.dtcms.com/a/336066.html

相关文章:

  • 软考 系统架构设计师系列知识点之杂项集萃(127)
  • 第2章 高并发IO的底层原理
  • 数据结构:二叉搜索树(Binary Search Tree)
  • 【Android】Activity创建、显式和隐式跳转、清单文件声明
  • Pytorch模型复现笔记-VGG讲解+架构搭建(可直接copy运行)+冒烟测试
  • MLArena:一款不错的AutoML工具介绍
  • 【股票数据API接口33】如何获取股票所属指数数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • PCA 实现多向量压缩:首个主成分的深层意义
  • JZ57 和为S的两个数字
  • Traefik网关DNS解析超时问题优化
  • Agent开发进阶路线:从基础响应到自主决策的架构演进
  • C++类型转换详解:从C风格到C++风格
  • 如何理解事件循环和JS的异步?
  • LintCode第137-克隆图
  • PostgreSQL导入mimic4
  • SQL详细语法教程(四)约束和多表查询
  • C语言相关简单数据结构:双向链表
  • Rust Async 异步编程(五):执行器和系统 I/O
  • Effective C++ 条款47: 使用traits classes表现类型信息
  • 基于强化学习的柔性机器人控制研究
  • 【大模型微调系列-07】Qwen3全参数微调实战
  • 关于虾的智能养殖系统的开发与实现(LW+源码+讲解+部署)
  • 【LeetCode题解】LeetCode 33. 搜索旋转排序数组
  • 详解flink java基础(一)
  • 嵌入式软件--->任务间通信
  • 【C++知识杂记1】智能指针及其分类
  • 05-实施任务控制
  • open Stack及VM虚拟机和其他平台虚拟机迁移至 VMware vSphere(esxi)虚拟化平台骨灰级后台磁盘替换法迁移方式
  • Maven依赖范围
  • C11期作业18(07.12)