Python格式化字符串的四种常见方式

 更新时间:2025年04月24日 08:29:43   作者:Android小码蜂  
在 Python 编程中,格式化字符串是一项常见且重要的任务,Python 提供了多种格式化字符串的方式,每种方式都有其特点和适用场景,本文将详细介绍 Python 中格式化字符串的 4 种常见方式,需要的朋友可以参考下

一、引言

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

二、% 格式化

2.1 基本原理

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

2.2 代码示例

# 定义变量
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 代码示例

# 定义变量
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 引入的一种新的格式化字符串方式,它在字符串前加上 fF 前缀,在字符串中使用花括号 {} 直接嵌入变量或表达式。

4.2 代码示例

# 定义变量
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 代码示例

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 版本选择合适的格式化方式。

以上就是Python格式化字符串的四种常见方式的详细内容,更多关于Python格式化字符串的资料请关注脚本之家其它相关文章!

相关文章

  • python 密码验证(滑块验证)

    python 密码验证(滑块验证)

    滑块密码在很多登录界面都可以看到,本文主要介绍了python 密码验证(滑块验证),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法

    python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法,需要的朋友可以参考下
    2020-02-02
  • Pytorch测试神经网络时出现 RuntimeError:的解决方案

    Pytorch测试神经网络时出现 RuntimeError:的解决方案

    这篇文章主要介绍了Pytorch测试神经网络时出现 RuntimeError:的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python读取和保存视频文件

    python读取和保存视频文件

    这篇文章主要为大家详细介绍了python读取显示和保存视频文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • python 基础教程之Map使用方法

    python 基础教程之Map使用方法

    这篇文章主要介绍了python 基础教程之Map使用方法的相关资料,这里附有简单使用实例,需要的朋友可以参考下
    2017-01-01
  • Python+Tkinter实现高颜值桌面便签工具

    Python+Tkinter实现高颜值桌面便签工具

    在快节奏的现代生活中,高效的任务管理成为提升生产力的关键,本文将带你用Python的Tkinter库开发一款轻量级桌面便签工具,感兴趣的小伙伴可以参考一下
    2025-04-04
  • Python中创建相关系数矩阵的方法小结

    Python中创建相关系数矩阵的方法小结

    相关系数矩阵是一种用于衡量变量之间关系的重要工具,本文将介绍在 Python 中创建相关系数矩阵的不同方法,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • Python Flask的request对象使用详解

    Python Flask的request对象使用详解

    本文介绍Flask request对象,一个完整的HTTP请求,包括客户端向服务端发送的Request请求和服务器端发送Response响应.为了能方便访问获取请求及响应报文信息,Flask框架提供了一些内建对象,下面就来说一下Flask针对请求提供内建对象reques,需要的朋友可以参考一下
    2023-02-02
  • python爬虫之自制英汉字典

    python爬虫之自制英汉字典

    这篇文章主要为大家详细介绍了python爬虫之自制英汉字典的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Python变量与数据类型全解析(最新整理)

    Python变量与数据类型全解析(最新整理)

    文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析,感兴趣的朋友一起看看吧
    2025-06-06

最新评论