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的浮點值。
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-字串和format()方法。始終選擇適合當前情況的字串格式化運算子是一個好主意,以確保程式碼易於閱讀和維護。
因此,總而言之,當您想插入一個字串值時,應使用%s;當您想以其原始形式插入一個值時,應使用%r。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP