🚀 Python f-string 全攻略:从入门到大师,让你的编码效率翻倍!
什么是 f-string
f-string 是 Python 3.6 引入的一种字符串格式化方法。通过在字符串前加 f 或 F 前缀,直接在 {} 中嵌入变量或表达式。相比传统的 % 格式化和 str.format() 方法,f-string 执行速度更快,并且支持复杂的格式化操作,如数字精度控制、对齐、日期格式化等,甚至可用于代码调试。
基础用法
变量插值
name: str = "张三"
age: int = 25
print(f"我是{name},今年{age}岁。")
# 输出: 我是张三,今年25岁。
表达式嵌入
x, y = 10, 20
print(f"{x} + {y} = {x + y}")
# 输出: 10 + 20 = 30
调用函数
def square(n):
return n ** 2
num = 5
print(f"{num} 的平方等于 {square(num)}")
# 输出: 5 的平方等于 25
数字格式化
千位分隔符
money = 1000000000
print(f"{money:,} 元")
# 输出: 1,000,000,000 元
print(f"{money:_} 元")
# 输出: 1_000_000_000 元
控制小数位数
pi = 3.1415926535
print(f"四舍五入到两位: {pi:.2f}")
# 输出: 四舍五入到两位: 3.14
print(f"四舍五入到整数: {pi:.0f}")
# 输出: 四舍五入到整数: 3
百分比转换
ratio = 0.75
print(f"百分比: {ratio:.2%}")
# 输出: 百分比: 75.00%
科学计数法
value = 0.0001234
print(f"科学计数法: {value:.2e}")
# 输出: 科学计数法: 1.23e-04
文本对齐与填充
填充对齐
text = "Python"
print(f"填充10字符左对齐: '{text:<10}'") # 左对齐
# 输出: 填充20字符左对齐: 'Python '
print(f"填充10字符右对齐: '{text:>10}'") # 右对齐
# 输出: 填充20字符右对齐: ' Python'
print(f"填充10字符居中对齐: '{text:^10}'") # 居中对齐
# 输出: 填充20字符居中对齐: ' Python '
自定义填充字符
text = "Python"
print(f"{text:_^20}")
# 输出: _______Python_______
print(f"{text:#^20}")
# 输出: #######Python#######
日期时间格式化
from datetime import datetime
now = datetime.now()
print(f"日期: {now:%Y-%m-%d}")
# 输出: 日期: 2025-05-26
print(f"时间: {now:%H:%M:%S}")
# 输出: 时间: 15:01:15
print(f"当地时间: {now:%c}")
# 输出: 当地时间: Mon May 26 15:01:15 2025
print(f"12小时制: {now:%I%p}")
# 输出: 12小时制: 03PM
进阶技巧
嵌套 f-string
value = 42
print(f"{f'The value is {value}':^30}")
# 输出: ' The value is 42 '
动态格式化参数
width = 20
precision = 2
num = 3.14159
print(f"Pi: '{num:^{width}.{precision}f}'")
# 输出: Pi: ' 3.14 '
表格对齐
print(f"{'ID':<5} {'Name':<10} {'Score':>6}")
print(f"1 {'Alice'} {85.5:>6.2f}")
print(f"2 {'Bob'} {92.0:>6.2f}")
# 输出:
# ID Name Score
# 1 Alice 85.50
# 2 Bob 92.00
自记录表达式(调试输出)
f-string 支持在花括号内使用 = 符号来输出表达式及其结果,这在调试时非常有用:
a, b = 10, 5
print(f"{a = }") # 输出: a = 10
print(f"{a + b = }") # 输出: a + b = 15
print(f"{a * b = }") # 输出: a * b = 50
print(f"{bool(a) = }") # 输出: bool(a) = True
与其他格式化方法的对比
| 方法 | 优点 | 缺点 |
|---|---|---|
% 格式化 |
语法简单 | 可读性差,不支持复杂格式化 |
str.format() |
灵活性高 | 代码冗长 |
f-string |
简洁、高效、可读性强 | 需 Python 3.6+ |
🚀 Python f-string 全攻略:从入门到大师,让你的编码效率翻倍!的更多相关文章
- 【转】Android Studio打包全攻略---从入门到精通
原文地址:http://blog.csdn.net/zivensonice/article/details/51672846 初出茅庐 手动打包 怎么手动打包 项目写完了,现在需要把应用上传到市场,问 ...
- Python 自动化测试全攻略:五种自动化测试模型实战详解
随着移动互联网的发展,软件研发模型逐步完善,软件交付质量越来越受到软件公司的重视,软件测试技术特别是自动化测试技术开始在软件系统研发过程中发挥着越来越重要的作用. 与传统的手工测试技术相比,自动化测试 ...
- C++字符串【string】和【char []】操作全攻略
异想之旅:本人博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章发布平台为CSDN.博客园.简书和开源中国,后期可能会有个人博客,除此之外 ...
- Moon.Orm3.8技术全攻略
Moon.ORM技术全攻略 一.绪论 本文主要是针对Moon.ORM的技术的讨论及其使用使用指导.如有其它疑问,请留言.本文主要针对Moon.ORM3.9版本,同时将会对4.0做一个技术预览.本文从 ...
- 用C#制作PDF文件全攻略
用C#制作PDF文件全攻略 目 录 前 言... 3 第一部分 iText的简单应用... 4 第一章 创建一个Document 4 第一步 创建一个Document实例:... 5 第二步 ...
- Android使用XML全攻略(1)
Android使用XML全攻略(1) Android 是针对移动设备的一种新兴的开源操作系统和 SDK.借助它,您可以创建功能强大的移动应用程序.当您的应用程序可以访问 Web 服务时,其吸引力 ...
- TestLink安装全攻略
TestLink安装全攻略 此文章转自该链接--http://www.cnblogs.com/Tcorner/archive/2011/07/26/2117296.html 安装前准备 需要下载xam ...
- 【转】轻松搞定FTP之FlashFxp全攻略
转载网址:http://www.newhua.com/2008/0603/39163.shtml 轻松搞定FTP之FlashFxp全攻略 导读: FlashFXP是一款功能强大的FXP/FTP软件,融 ...
- 在net安装程序中部署oracle客户端全攻略
在net安装程序中部署oracle客户端全攻略 主要的是要做三件工作: 打包文件,写注册表,注册环境变量说明:我的oracle版本为9, 在2000 advanced server 上测试通过,可以正 ...
- 【转】Perl Unicode全攻略
Perl Unicode全攻略 耐心看完本文,相信你今后在unicode处理上不会再有什么问题. 本文内容适用于perl 5.8及其以上版本. perl internal form 在Perl看来, ...
随机推荐
- /proc的相关知识
/proc的相关知识 /proc 介绍 /proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可 ...
- [第一章]ABAQUS CM插件中文手册
ABAQUS Composite Modeler User Manual(zh-CN) Dassault Systèmes, 2018 注: 源文档的交叉引用链接,本文无效 有些语句英文表达更易理解, ...
- HarmonyOS应用开发者高级认证【考题+答案】
HarmonyOS应用开发者高级认证 前言 考试简介 掌握鸿蒙的核心概念和端云一体化开发.数据.网络.媒体.并发.分布式.多设备协同等关键技术能力,具备独立设计和开发鸿蒙应用能力. 博文说明 本博文的 ...
- DeepSeek 多模态大模型 Janus-Pro 本地部署教程
下载模型仓库 git clone https://github.com/deepseek-ai/Janus.git 国内下载仓库失败时,可以使用以下代理: git clone https://gith ...
- go 定义接口解决 import cycle not allowed
前言 go项目运行报错: import cycle not allowed,导入循环(import cycle) 报错原因,在Go语言中,两个或更多的包之间形成了相互依赖的关系,即A包导入了B包,而B ...
- go goroutine 怎样更好的进行错误处理
前言 在 Go 语言程序开发中,goroutine 的使用是比较频繁的,因此在日常编码的时候 goroutine 里的错误处理,怎么做会比较好呢? 一般我们的业务代码如下: func main() { ...
- Thinkphp3.2 PHPMailer 发送邮件
第一步 :下载附件PHPMailer解压到ThinkPHP\Library\Vendor 第二步:在Common文件夹中的公共函数function.php中写一个发送邮件的函数, 这样可以在项目任意位 ...
- CAS架构与原理简介
1. 会话与Cookie HTTP是无状态协议,客户端与服务端之间的每次通信都是独立的,而会话机制可以让服务端鉴别每次通讯过程中的客户端是否是同一个,从而保证业务的关联性. Session是服务器使用 ...
- 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析
引言 ❝ 小编是一名10年+的.NET Coder,期间也写过Java.Python,从中深刻的认识到了软件开发与语言的无关性.现在小编已经脱离了一线开发岗位,在带领团队的过程中,发现了很多的问题,究 ...
- 最爱lx-music的音源哪里去了?
最爱lx-music,让你满心喜欢,可是音源没有了,因为被投诉给全部关了. 公心作者增加了自定义源. 六音提供了音源,做了一件大善事.注意的是音源会一直初始化.那就下载适合的版本: 欣赏阿鲁阿卓如痴如 ...