一、前缀r:原始字符串 🔍
前缀r
用于表示原始字符串。在原始字符串中,反斜杠\
被视为字面字符,而不是转义字符。这在处理Windows文件路径等包含反斜杠的字符串时非常有用。
# 普通字符串中的反斜杠是转义字符
path = "C:\\Users\\username\\Documents\\file.txt"
print(path) # 输出:C:\Users\username\Documents\file.txt
# 普通字符串中的反斜杠是转义字符
path = "C:\\Users\\username\\Documents\\file.txt"
print(path) # 输出:C:\Users\username\Documents\file.txt
# 使用原始字符串,反斜杠被视为字面字符
path = r"C:\Users\username\Documents\file.txt"
print(path) # 输出:C:\Users\username\Documents\file.txt
输出:
C:\Users\username\Documents\file.txt
C:\Users\username\Documents\file.txt
进程已结束,退出代码0
二、前缀f:格式化字符串 🔍
前缀f
用于表示格式化字符串(也称为f-string)。f-string是Python 3.6及以上版本引入的一种新的字符串格式化方式,它允许在字符串中嵌入表达式,并在运行时进行计算和替换。
name = "高斯小哥"
age = 18
# 使用f-string格式化字符串
greeting = f"Hello, {name}! You are {age} years old."
print(greeting) # 输出:Hello, 高斯小哥! You are 18 years old.
输出:
Hello, 高斯小哥! You are 18 years old.
进程已结束,退出代码0
在f-string中,你可以使用花括号{}
来包裹变量或表达式,它们在字符串中会被相应的值替换。此外,f-string还支持一些格式化选项,如指定宽度、精度等。
pi = 3.1415926
# 使用f-string进行格式化
formatted_pi = f"{pi:.2f}" # 保留两位小数
print(formatted_pi) # 输出:3.14
📝 注意:f-string提供了一种简洁、易读的字符串格式化方式,特别适用于在字符串中嵌入变量或表达式的场景。
三、前缀u:Unicode字符串 🔍
前缀u
用于表示Unicode字符串。在Python 2中,这个前缀用于指定一个字符串是Unicode类型,以便在处理不同编码的文本时避免出现问题。然而,在Python 3中,所有的字符串都是Unicode字符串(即str类型),因此这个前缀不再是必需的。
# 在Python 2中,u前缀用于指定Unicode字符串
unicode_str = u"你好,世界!"
print(unicode_str) # 输出:你好,世界!
# 在Python 3中,所有的字符串都是Unicode字符串,u前缀不再是必需的
unicode_str = "你好,世界!"
print(unicode_str) # 输出:你好,世界!
尽管在Python 3中u前缀不再是必需的,但在某些情况下,为了保持代码的兼容性或明确性,开发者仍然可能会使用它。
📝 注意:在Python 3中,除非有特殊需求,否则通常不需要使用u前缀。
四、实际应用 🚀
了解这些前缀的用法和差异后,让我们来看一些实际应用的例子。
例子 1:处理文件路径
当你需要处理包含反斜杠的文件路径时,可以使用原始字符串前缀r
。
file_path = r"C:\Users\User\Documents\file.txt"
with open(file_path, "r") as file:
content = file.read()
print(content)
例子 2:使用f-string格式化字符串
当你需要在字符串中嵌入变量时,可以使用格式化字符串前缀f
。
# 条件格式化,根据条件改变输出
is_student = False
formatted_string = f"I am {'a student' if is_student else 'not a student'}."
print(formatted_string) # 输出:I am not a student.