Python 字符串
字符串是 Python 中最常用的数据类型之一。它是由一系列字符组成的不可变序列,用于表示文本信息。
创建字符串
你可以使用单引号 '、双引号 " 或三引号 '''/""" 来创建字符串。
python
# 使用单引号
name1 = 'Alice'
# 使用双引号
name2 = "Bob"
# 使用三引号可以创建跨多行的字符串
message = """
This is a multi-line string.
It can span across several lines.
"""
print(name1)
print(name2)
print(message)单引号和双引号可以互相嵌套,这在字符串包含引号时非常有用。
python
quote1 = "He said, 'Hello!'"
quote2 = 'She replied, "Hi there!"'字符串是序列
字符串是一个字符序列,因此我们可以像操作列表和元组一样,对字符串进行索引和切片。
索引 (Indexing)
索引用于访问字符串中的单个字符。索引从 0 开始。
python
my_string = "Python"
# 获取第一个字符
print(my_string[0]) # 输出: 'P'
# 获取最后一个字符
print(my_string[-1]) # 输出: 'n'切片 (Slicing)
切片用于获取字符串的子串。语法是 [start:stop:step]。
python
my_string = "Hello, World!"
# 获取从索引 2 到索引 4 的字符
print(my_string[2:5]) # 输出: 'llo'
# 从头开始到索引 4
print(my_string[:5]) # 输出: 'Hello'
# 从索引 7 到末尾
print(my_string[7:]) # 输出: 'World!'
# 获取整个字符串
print(my_string[:]) # 输出: 'Hello, World!'
# 每隔一个字符取一个
print(my_string[::2]) # 输出: 'Hlo ol!'
# 逆序字符串
print(my_string[::-1]) # 输出: '!dlroW ,olleH'常用字符串方法
Python 为字符串提供了大量内置方法来执行常见操作。请注意,由于字符串是不可变的,所有这些方法都会返回一个新的字符串,而不会修改原始字符串。
len(s): 返回字符串的长度。s.upper(): 返回字符串的大写版本。s.lower(): 返回字符串的小写版本。s.strip(): 移除字符串首尾的空白字符。s.split(sep): 按指定分隔符sep将字符串分割成一个列表。sep.join(iterable): 用指定的分隔符sep连接一个可迭代对象(如列表)中的所有元素。s.replace(old, new): 将字符串中的old子串替换为new子串。s.startswith(prefix): 检查字符串是否以prefix开头。s.endswith(suffix): 检查字符串是否以suffix结尾。s.find(sub): 查找子串sub在字符串中首次出现的位置,如果找不到则返回 -1。
示例:
python
text = " python is fun! "
print(len(text)) # 输出: 18
print(text.upper()) # 输出: ' PYTHON IS FUN! '
print(text.strip()) # 输出: 'python is fun!'
print(text.strip().split(' '))# 输出: ['python', 'is', 'fun!']
print("-".join(['a', 'b', 'c'])) # 输出: 'a-b-c'
print(text.replace('fun', 'awesome')) # 输出: ' python is awesome! '格式化字符串
将变量的值嵌入到字符串中是一种非常常见的需求。Python 提供了几种方法来实现这一点,最现代和推荐的方法是使用 f-strings。
f-strings (格式化字符串字面值)
在字符串的起始引号前加上一个 f 或 F,然后你就可以在字符串中用大括号 {} 来直接引用变量。
python
name = "Eric"
age = 30
# 使用 f-string
message = f"My name is {name} and I am {age} years old."
print(message) # 输出: My name is Eric and I am 30 years old.
# f-string 中还可以执行表达式
print(f"Next year, I will be {age + 1}.") # 输出: Next year, I will be 31.由于其简洁性和高效性,f-strings 是 Python 3.6+ 版本中的首选格式化方法。