在Python中,字符串可以用单引号(‘’)或双引号(" “”)来定义。它们之间没有本质的区别,可以互换使用。但是,在某些情况下,它们可能会有不同的用途。
s1 = "Hello, World!"
s2 = 'Python is great.'
如果字符串中包含单引号,可以使用双引号来定义该字符串,反之亦然。这可以避免在字符串中使用转义字符。
s3 = "Hello, I'm a string with a single quote."
s4 = 'Hello, I "love" Python.'
字符串拼接
使用+
运算符可以将两个字符串拼接在一起,也可以使用join()
方法。
s5 = "Hello, " + "World!"
print('-'.join(['2022', '04', '15'])) # 输出 "2022-04-15"
由于字符串的不可变性,拼接多个字符串时尽量避免频繁使用+操作符,因为这会不断创建新的字符串对象,导致效率降低。推荐使用
str.join()
方法,或者如果是在Python 3.6以上,可以使用f-string
。
推荐的字符拼接方式:
# 使用 join 方法拼接字符串列表
words = ['How', 'are', 'you', 'doing', '?']
sentence = ' '.join(words)
print(sentence) # 输出 "How are you doing ?"
# 使用 f-string (Python 3.6+)
word1 = "How"
word2 = "you"
sentence = f"{word1} are {word2} doing?"
print(sentence) # 输出 "How are you doing?"
字符串索引和切片
通过索引可以访问字符串中的单个字符,通过切片可以获取字符串的子串。
s6 = "Python"
first_char = s6[0] # 获取第一个字符 'P'
last_char = s6[-1] # 获取最后一个字符 'n'
sub_string = s6[1:4] # 获取子串 'yth'
字符串查找
使用in
关键字可以检查一个字符串是否包含另一个字符串。
if "Python" in "I love Python!":
print("The string contains 'Python'.")
替换
使用replace()
方法可以将字符串中的字符或子串替换为其他字符或子串。
s7 = "Hello, World!"
s8 = s7.replace("World", "Python")
大小写转换
使用title()方法、upper()方法以及lower()方法可分别实现首字母大写、全部大写以及全部小写等需求。
s9 = "I love python"
print(s9.title()) # I Love Python
print(s9.upper()) # I LOVE PYTHON
print(s9.lower()) # i love python
print(s9) # I love python
s9 = s9.lower()
print(s9) # i love python
需要注意的是这些方法并位改变字符串的原本值,只是新建了一个临时变量。Python中的字符串是无法修改的,如果需要修改该字符串,需要用一个新字符串或它本身来接收。
在字符串中引用变量
当我们打印字符串时,可能需要引用某个数值或其他数据类型,这时可以用f字符串
引用变量。
name = "张三"
age = 28
print(f"你好,{name}。你今年{age}岁。") # 输出 "你好,张三。你今年28岁。"
f-string是在运行时解析和执行的,因此它们不能用于格式化不受信任的用户输入,以避免安全风险。
f-string在性能上通常比str.format()和旧式的百分号格式化方法更快。
f-string因其简洁、易读和强大的特性,已经成为Python中字符串格式化的首选方法。
使用制表符和换行符
制表符通常用于缩进文本或在文本中对齐列。在Python中,制表符用\t表示。当你打印一个包含制表符的字符串时,输出会在制表位置(通常是每列的起始位置)开始。
print("Name\tAge\tCountry")
# 输出
# Name Age Country
换行符用于在文本中创建新的行。在Python中,换行符用\n表示。当你打印一个包含换行符的字符串时,输出会在换行符的位置开始新的一行。
print("Hello, World!\nThis is a new line.")
# 输出
# Hello, World!
# This is a new line.
在编写代码时,要注意制表符和空格的使用。Python对缩进非常敏感,混合使用制表符和空格可能会导致
IndentationError
。
在不同的操作系统上,换行符可能会有所不同。在Windows上,通常使用\r\n
作为换行符,而在Unix和Linux系统(包括macOS)上,通常使用\n
。Python提供了一个跨平台的os.linesep
字符串,它表示当前平台的行分隔符。
删除空白
在Python中,字符串可能包含不同类型的空白字符,如空格、制表符(\t)、换行符(\n)等。有时,你希望删除字符串开头或结尾的空白字符,或者删除字符串中的所有空白字符。Python提供了几种方法来实现这些操作。分别是:
- lstrip(): 删除左空白
- rstrip(): 删除右空白
- strip(): 删除两边空白
s10 = ' python '
print(s10.lstrip()) # 'python '
print(s10.rstrip()) # ' python'
print(s10.strip()) # 'python'