Python 什么时候要使用%r而不是%s

Python 什么时候要使用%r而不是%s

在Python中,%r和%s被用作 字符串格式化操作符 ,用于将值插入到字符串中。

%s操作符用于表示字符串,而%r用于表示一个字符串的原始形式,包括引号和特殊字符。

在想要以用户友好的方式显示字符串,不带任何额外的引号或特殊字符时,使用%s。

在想要显示变量的确切字符串表示形式,包括可能包含的任何引号或特殊字符时,使用%r。

在大多数情况下使用%s,它提供了更友好的输出,更容易阅读和理解。

下面是一些例子来说明差异:

示例

在第一个例子中,%s被用于将name和age的值插入到字符串中,得到一个格式化的字符串,其中的值被表示为字符串。

而在第二个例子中,使用%r代替,它插入的是name和age的原始形式,包括围绕name的字符串值的引号。

# Using %s
name = 'John'
age = 30
print("My name is %s and I am %s years old." % (name, age))

# Using %r
name = 'John'
age = 30
print("My name is %r and I am %r years old." % (name, age))

输出

My name is John and I am 30 years old.
My name is 'John' and I am 30 years old.

下面是几个更多的例子,进一步说明%s和%r字符串格式化运算符之间的区别:

使用%s和%r来处理浮点数

示例

在这个例子中,%s和%r都显示数字的浮点数值。

number = 3.14159
print("The value of pi is approximately %s." % number)
print("The value of pi is approximately %r." % number)

输出

The value of pi is approximately 3.14159.
The value of pi is approximately 3.14159.

使用 %s 和 %r 处理布尔值

示例

在这个示例中,%s 将 is_raining 的布尔值作为字符串(’True’)进行显示,而 %r 则以原始形式进行显示(’True’)。

is_raining = True
print("It is %s that it's raining outside." % is_raining)
print("It is %r that it's raining outside." % is_raining)

输出

It is True that it's raining outside.
It is True that it's raining outside.

使用%s和%r处理列表

示例

在这个例子中,%s将列表中的fruits显示为字符串,而%r将其以原始形式显示,包括每个元素周围的方括号和引号。

fruits = ['apple', 'banana', 'orange']
print("My favorite fruits are: %s." % fruits)
print("My favorite fruits are: %r." % fruits)

输出

My favorite fruits are: ['apple', 'banana', 'orange'].
My favorite fruits are: ['apple', 'banana', 'orange'].

下面是三个更多的实例,展示了Python中%s和%r字符串格式化操作符之间的区别:

使用%s和%r格式化整数

示例

在这个例子中,%s和%r都会按照原样显示number的整数值。

number = 42
print("The answer to life, the universe, and everything is %s." % number)
print("The answer to life, the universe, and everything is %r." % number)

输出

The answer to life, the universe, and everything is 42.
The answer to life, the universe, and everything is 42.

使用%s和%r来处理字符串

示例

在这个示例中,%s以原始的字符串形式显示变量name的值,而%r则在字符串上加上引号来表示它是一个字符串。

name = "Alice"
print("Hello, my name is %s." % name)
print("Hello, my name is %r." % name)

输出

Hello, my name is Alice.
Hello, my name is 'Alice'.

使用%s和%r与字典

示例

在这个例子中,%s使用字符串格式化语法显示字典的值,而%r显示字典的原始表示,包括花括号和键和值周围的引号。

person = {'name': 'Bob', 'age': 30}
print("My name is %(name)s and I am %(age)s years old." % person)
print("My name is %(name)r and I am %(age)r years old." % person)

输出

My name is Bob and I am 30 years old.
My name is 'Bob' and I am 30 years old.

通常,当您想要将一个值格式化为字符串时,应该使用%s,而当您想要将一个值格式化为原始表示时,应该使用%r。以下是您可能希望使用其中之一的一些情况:

应记住,在Python中还有其他可用的字符串格式化操作符,例如f−strings和format()方法。始终选择适当的字符串格式化操作符以确保您的代码易于阅读和维护是一个好主意。

因此,总结起来,当您想要插入一个值作为字符串时,应使用%s,而当您想要以原始形式插入一个值时,应使用%r。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程