首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python 格式化字符串的 4 种方式(十三)

  • 25-04-24 21:41
  • 2423
  • 12068
juejin.cn

Python 格式化字符串的 4 种方式

一、引言

在 Python 编程中,格式化字符串是一项常见且重要的任务,它能够帮助我们将变量、表达式等内容插入到字符串中,使输出更加清晰和易读。Python 提供了多种格式化字符串的方式,每种方式都有其特点和适用场景。本文将详细介绍 Python 中格式化字符串的 4 种常见方式,并通过丰富的代码示例进行说明。

二、% 格式化

2.1 基本原理

% 格式化是 Python 中最古老的字符串格式化方式,它使用 % 操作符,根据 % 后面的格式化字符来指定变量的类型,并将变量插入到字符串中。

2.2 代码示例

python
代码解读
复制代码
# 定义变量 name = "Alice" age = 25 # 使用 % 格式化字符串,%s 表示字符串类型,%d 表示整数类型 message = "My name is %s and I am %d years old." % (name, age) print(message) # 输出格式化后的字符串 # 格式化浮点数,%.2f 表示保留两位小数 height = 1.65 height_message = "My height is %.2f meters." % height print(height_message)

在上述代码中,%s 用于格式化字符串,%d 用于格式化整数,%.2f 用于格式化浮点数并保留两位小数。通过 % 操作符,将变量插入到对应的位置。

三、str.format() 方法

3.1 基本原理

str.format() 方法是 Python 2.6 引入的一种格式化字符串的方式,它使用花括号 {} 作为占位符,通过 format() 方法中的参数来填充占位符。

3.2 代码示例

python
代码解读
复制代码
# 定义变量 name = "Bob" age = 30 # 使用 str.format() 方法格式化字符串 message = "My name is {} and I am {} years old.".format(name, age) print(message) # 通过索引指定占位符的填充顺序 message_index = "My name is {1} and I am {0} years old.".format(age, name) print(message_index) # 通过关键字参数指定占位符的填充 message_keyword = "My name is {name} and I am {age} years old.".format(name=name, age=age) print(message_keyword) # 格式化浮点数,指定保留小数位数 weight = 70.5 weight_message = "My weight is {:.1f} kilograms.".format(weight) print(weight_message)

在上述代码中,{} 是默认的占位符,也可以通过索引或关键字参数来指定占位符的填充顺序和内容。同时,还可以使用 :.1f 等格式说明符来格式化浮点数。

四、f-string(格式化字符串字面值)

4.1 基本原理

f-string 是 Python 3.6 引入的一种新的格式化字符串方式,它在字符串前加上 f 或 F 前缀,在字符串中使用花括号 {} 直接嵌入变量或表达式。

4.2 代码示例

python
代码解读
复制代码
# 定义变量 name = "Charlie" age = 35 # 使用 f-string 格式化字符串 message = f"My name is {name} and I am {age} years old." print(message) # 在 f-string 中使用表达式 birth_year = 2023 - age message_expr = f"I was born in {birth_year}." print(message_expr) # 格式化浮点数 salary = 5000.75 salary_message = f"My monthly salary is {salary:.2f} yuan." print(salary_message)

在上述代码中,通过在字符串前加上 f 前缀,在花括号中直接使用变量或表达式,Python 会自动将其替换为对应的值。同时,也可以使用格式说明符来格式化变量。

五、模板字符串

5.1 基本原理

模板字符串是 Python 的 string 模块中的 Template 类提供的一种格式化字符串方式,它使用 $ 符号作为占位符,通过 substitute() 方法来替换占位符。

5.2 代码示例

python
代码解读
复制代码
from string import Template # 定义变量 name = "David" age = 40 # 创建模板字符串 template = Template("My name is $name and I am $age years old.") # 使用 substitute() 方法替换占位符 message = template.substitute(name=name, age=age) print(message)

在上述代码中,首先导入 Template 类,然后创建一个模板字符串,使用 $ 符号定义占位符。最后,通过 substitute() 方法将变量替换到占位符中。

六、总结与展望

6.1 总结

Python 提供了多种格式化字符串的方式,每种方式都有其优缺点:

  • % 格式化是最古老的方式,语法简单,但不够灵活。
  • str.format() 方法提供了更多的灵活性,支持索引、关键字参数等,但代码相对冗长。
  • f-string 是最简洁和直观的方式,支持直接嵌入变量和表达式,代码可读性高,但要求 Python 版本在 3.6 及以上。
  • 模板字符串提供了一种安全的格式化方式,适用于需要从用户输入中获取数据进行格式化的场景。

6.2 展望

随着 Python 语言的不断发展,f-string 由于其简洁性和易用性,可能会成为未来格式化字符串的主流方式。同时,模板字符串在处理用户输入时的安全性优势也会在特定场景中得到更广泛的应用。开发者可以根据具体的需求和 Python 版本选择合适的格式化方式。

注:本文转载自juejin.cn的Android小码蜂的文章"https://juejin.cn/post/7496397558358966326"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

109
人工智能
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top