Python中%r和%s的详解及区别

Python中 %r 和 %s 的详解及区别

在 Python 中,可以使用 % 操作符来格式化字符串。其中 %s%r 打印出来的字符串基本相同,但有时候它们输出的内容可能会有不同。本文将详细讲解 %s%r 在 Python 中的使用。

什么是字符串格式化?

字符串格式化是指将一个字符串模板中的占位符替换为真正的数据。在 Python 中,以下方式可以实现字符串格式化:

# 使用 % 进行字符串格式化
string = "Hello, %s!" % "World"
print(string)
# 输出:Hello, World!

# 使用 {} 和 format() 进行字符串格式化
string = "Hello, {}!".format("World")
print(string)
# 输出:Hello, World!

在这两个例子中,%s{} 都是占位符,分别表示插入一个字符串。因此,这些占位符可以被实际的字符串取代。

%s

%s 指示 Python 将变量视为一个字符串,并将其插入到格式化的字符串中。变量可以是字符串、数字等任何数据类型,只要将其作为一个参数传递给字符串的格式化语句即可。

# 使用 %s 打印数字和字符串
my_name = "Mike"
age = 26
print("My name is %s. I am %s years old." % (my_name, age))
# 输出:My name is Mike. I am 26 years old.

# 使用 %s 打印一个列表
my_list = ['a', 'b', 'c']
print("The list is: %s" % my_list)
# 输出:The list is: ['a', 'b', 'c']

如上所述,%s 可以格式化任何数据类型(如字符串、数字、列表等)。

%r

%r 可以将变量转换为其“原始”形式,包括引号、斜杠和其他特殊字符。因此,在某些情况下,使用 %r 可能会更有用。

# 使用 %r 打印数字和字符串
my_name = "Mike"
age = 26
print("My name is %r. I am %r years old." % (my_name, age))
# 输出:My name is 'Mike'. I am 26 years old.

# 使用 %r 打印一个列表
my_list = ['a', 'b', 'c']
print("The list is: %r" % my_list)
# 输出:The list is: ['a', 'b', 'c']

可以看到,%r 打印的字符串包含了引号,这是 str() 无法做到的。 %r%s 更加严谨,更加适用于调试和日志记录等。

区别

当我们使用 % 进行字符串插值时,使用 %s 通常足以满足我们的需求。但是,如果我们需要表示不仅仅是内容本身,而是要用来表示这个对象的字符串形式,在这种情况下,使用 %r 会更好。

另一个区别是 %s 将所有东西都转换为字符串,而 %r 将字符串保留为字符串。 在大多数情况下,这不会导致问题,但是在某些情况下,保存为字符串的值可能更直观一些。

总结

在 Python 中,%s%r 格式化字符串格式基本相同,不同之处在于 %r 可以在某些情况下更好地提供原始信息。用法上也非常相似,%s 将变量格式化为字符串,%r 将变量格式化为其字符串表示形式之一。

另外,了解如何格式化字符串对于 Python 项目和编写好的代码非常重要。这使得代码更易于维护和调试,并改善在大型代码库中合作的能力。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中%r和%s的详解及区别 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python 列表常用方法超详细梳理总结

    以下是详细讲解“Python列表常用方法超详细梳理总结”的完整攻略。 Python列表常用方法 在Python中,列表是一种常见的数据类型,它可以存储任意类型的数据,包括数字、字符串、列表、元组、字典等。下面是Python列表常用方法的详细说明。 创建列表 在Python中,可以使用方括号[]或list()函数来创建一个列表。下面是一个示例,演示了如何创建一…

    python 2023年5月13日
    00
  • 如何使用Python自动生成报表并以邮件发送

    下面是详细讲解 “如何使用Python自动生成报表并以邮件发送”的完整攻略: 1. 安装依赖库 使用Python生成报表需要安装相应的依赖库,其中最常用的就是:pandas,matplotlib和openpyxl。 安装时需要使用pip工具,执行如下命令: pip install pandas matplotlib openpyxl 2. 编写代码 2.1 …

    python 2023年5月19日
    00
  • python cv2截取不规则区域图片实例

    下面是详细讲解“python cv2截取不规则区域图片实例”的完整攻略: 标题 介绍 本文主要介绍如何使用Python的OpenCV库来截取不规则区域的图片,可以帮助我们从图像中筛选出我们感兴趣的部分。 准备工作 在继续之前,我们需要确保已经正确安装了Python 3和OpenCV库。安装方法可以参考官方文档。如果安装过程中遇到任何问题,请参阅官方文档或搜索…

    python 2023年5月19日
    00
  • Python如何import文件夹下的文件(实现方法)

    使用Python import文件夹下的文件可以帮助我们更好地组织代码,避免代码结构混乱,同时也可以方便地调用函数和变量。下面是实现此功能的攻略: 将要导入的文件放入一个同名文件夹中,例如我们创建了一个名为”utils”的文件夹,并将我们要导入的函数放置其中。 在主文件中使用 import 语句来导入所需的函数。我们可以使用以下两种导入方式: 方式一:导入整…

    python 2023年6月5日
    00
  • Python 数据可视化之Bokeh详解

    Python数据可视化之Bokeh详解 Bokeh是一个Python数据可视化库,它可以创建交互式的、现代化的、浏览器友好的图表。Bokeh支持多种图表类型,包括折线图、散点图、柱状图、热力图等。本文将详细讲解如何使用Bokeh进行数据可视化。 安装Bokeh 在使用Bokeh之前,需要先安装它。可以使用pip命令来安装Bokeh,命令如下: pip ins…

    python 2023年5月15日
    00
  • 在Python中计算数据框中的单词[重复]

    【问题标题】:Counting Words in a Dataframe in Python [duplicate]在Python中计算数据框中的单词[重复] 【发布时间】:2023-04-03 11:12:01 【问题描述】: 我已使用 pandas 将 CSV 文件导入 Python。该文件由 3 列和 498 行组成。我只需要一个名为“描述”的列的字数…

    Python开发 2023年4月8日
    00
  • 微软Copilot重磅革新AI重新定义Office详细介绍

    下面就为大家介绍“微软Copilot重磅革新AI重新定义Office”的教程。 什么是微软Copilot? 微软Copilot是一款基于人工智能(AI)技术的办公软件,它可以根据用户的操作习惯和输入文本,自动为用户提供最佳的操作建议和内容补全,并支持多种编程语言的开发和调试。 微软Copilot更新后的新功能 微软Copilot在最新的更新中,加入了许多新的…

    python 2023年5月13日
    00
  • Python提取PDF中的图片的实现示例

    以下是“Python提取PDF中的图片的实现示例”的完整攻略: 步骤一:安装依赖库 首先需要安装两个依赖库:PyPDF2和Pillow。可通过以下命令进行安装: pip install PyPDF2 Pillow 步骤二:打开PDF文件 在python中使用PyPDF2库来打开PDF文件。例如,打开文件mypdf.pdf: import PyPDF2 pdf…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部