Skip to content

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 (格式化字符串字面值)

在字符串的起始引号前加上一个 fF,然后你就可以在字符串中用大括号 {} 来直接引用变量。

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+ 版本中的首选格式化方法。

本站内容仅供学习和研究使用。