字符串--r、f、u前缀的用途与差异

一、前缀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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值