Python %r和%s区别代码实例解析

1. Python中字符串的表示方式

在Python中,字符串可以使用两种不同的表示方式:%r和%s。

首先,我们先来了解一下这两种表示方式的具体含义。

%r表示使用repr()函数对字符串进行转换,得到的结果可以是带引号的字符串。它打印出来的内容是Python语法格式的字符串,可以直接复制粘贴并在Python代码中使用。

%s表示使用str()函数对字符串进行转换,得到的结果是去掉引号的字符串。它打印出来的内容更加人性化,适用于显示给用户或者用作日志记录。

下面的代码示例可以更好地说明这两种表示方式的区别:

name = 'Alice'

print("Hello, %r!" % name) # 使用%r表示方式

print("Hello, %s!" % name) # 使用%s表示方式

以上代码将输出:

Hello, 'Alice'!

Hello, Alice!

可以看到,使用%r时,字符串被包含在单引号内;而使用%s时,字符串没有引号。

2. 区别的具体应用场景

那么在实际开发中,我们应该如何选择使用%r还是%s呢?下面的小节将详细介绍这两种表示方式的应用场景。

2.1 调试和日志记录

%r通常用于调试和日志记录,因为它在结果中包含了完整的Python语法格式的字符串。这对于诊断和排查问题非常有帮助。

比如下面的代码:

import logging

def divide(a, b):

try:

result = a / b

logging.info("The result is %r" % result)

except ZeroDivisionError:

logging.error("Don't divide by zero!")

divide(10, 2)

divide(10, 0)

以上代码使用了Python标准库中的logging模块来记录日志。使用%r可以将计算结果以完整的Python语法格式的字符串的形式记录下来。

输出结果如下:

The result is 5.0

Don't divide by zero!

2.2 用户显示和输出

%s通常用于用户显示和输出,因为它打印出的内容更加人性化。可以去掉引号,使得用户更容易理解和阅读。

比如下面的代码:

temperature = 0.6

print("The temperature is %.1f degrees Celsius." % temperature)

以上代码输出:

The temperature is 0.6 degrees Celsius.

使用%s可以显示更加友好的字符串,完全符合人类阅读习惯。

3. 总结

在Python中,字符串可以使用%r和%s两种表示方式。%r用于调试和日志记录,它打印出的内容是完整的Python语法格式的字符串;%s用于用户显示和输出,它打印出的内容更加人性化。

根据具体的应用场景,我们可以灵活地选择使用%r还是%s。使用%r可以让我们更方便地调试和排查问题,而使用%s则可以让用户更容易理解和阅读输出的内容。

后端开发标签