字符串是 Python 中最常见的数据类型之一,它功能丰富且灵活,广泛应用于文本处理、数据解析等领域。本篇博文将全面总结 Python 字符串的知识点,帮助你掌握其核心概念与使用方法。
什么是字符串?
在 Python 中,字符串是由字符组成的不可变序列,用来表示文本数据。
- 定义方式:用单引号
'
、双引号"
或三引号'''
/"""
包裹字符。 - 支持多行字符串:使用三引号定义多行字符串。
示例:
s1 = 'Hello'
s2 = "World"
s3 = '''This is a multi-line string.'''
字符串的特点
-
不可变性
字符串一旦创建就无法更改。对字符串的任何修改操作都会生成新的字符串。s = "hello" s[0] = 'H' # 会报错,因为字符串是不可变的
-
支持索引和切片
字符串可以通过索引访问单个字符,也可以通过切片操作提取子字符串。字符串索引从左向右数从0开始012...,从右往左数是-1 -2 ....。切片时注意索引前包后不包
s = "Python"
print(s[0]) # P
print(s[-1]) # n
print(s[1:4:1]) # yth # 切片完整格式 string[start:end:step],step默认为1,可省略;end索引位置是不包含的
print(s[3:]) # hon,从索引3取都最后
print(s[:]) # python取所有
print(s[::2]) # pto 隔一个取一个
字符串的常用操作
1. 字符串格式化、拼接与重复
- 字符串拼接的各种姿势
- 使用
*
重复字符串:很实用s = "Hi" * 3 # "HiHiHi"
2. 成员检查
- 使用
in
检查子串是否存在:print("Py" in "Python") # True
3. 获取字符串长度
- 使用
len()
:print(len("Hello")) # 5
字符串常用方法
1. 大小写转换
upper()
:全部转为大写。lower()
:全部转为小写。capitalize()
:首字母大写。title()
:每个单词的首字母大写。swapcase()
:大小写互换。
s = "hello World"
print(s.upper()) # HELLO WORLD
print(s.title()) # Hello World
2. 查找与判断
find(sub)
:返回子串的第一个索引,找不到返回 -1。startswith(prefix)
/endswith(suffix)
:检查是否以指定前缀或后缀开头/结尾。count(sub)
:统计子串出现的次数。
s = "hello world"
print(s.find("world")) # 6
print(s.startswith("hello")) # True
print(s.count("o")) # 2
3. 替换与分割
replace(old, new)
:替换子串。split(sep)
:按分隔符分割字符串,返回列表。partition(sub)
:分为三部分(前部分, 匹配部分, 后部分)
。join(iterable)
:用字符串连接一个可迭代对象。
s = "hello world"
print(s.replace("world", "Python")) # "hello Python"
print(s.split(" ")) # ['hello', 'world']
print("_".join(["a", "b", "c"])) # "a_b_c"
4. 去除空格
strip()
:去掉首尾空格或指定字符。lstrip()
/rstrip()
:去掉左侧或右侧空格。
s = " hello "
print(s.strip()) # "hello" 默认去掉空格和回车
print(s.strip('lo')) # he
5. 对齐
center(width)
:居中对齐。ljust(width)
/rjust(width)
:左对齐或右对齐。zfill(width)
:在左侧填充零。
s = "hello"
print(s.center(10)) # " hello " 默认空格填充
print(s.center(10,'$')) # "$$hello$$$"
print(s.zfill(8)) # "000hello" 在一些用0填充指定长度的场景下非常有用
特殊功能
1. 转义字符
字符串中可以使用转义字符处理特殊符号:
\n
:换行。\t
:制表符。\\
:反斜杠。\'
和\"
:单引号和双引号。
s = "Hello\nWorld"
print(s)
2. 原始字符串
- 在原始字符串中,转义字符不会被处理,用
r
或R
定义,在书写windows路径的时候非常有用:print('Hello\nWorld') # \n会换行 print(r'Hello\nWorld') # \n会被打印到终端
3. 编码与解码
字符串是 Unicode,可以通过 encode()
转为字节,通过 decode()
转回字符串。
s = "你好"
b = s.encode("utf-8") # 字符串编码为字节
print(b) # b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(b.decode("utf-8")) # 解码为字符串
类型判断
Python 提供了一系列方法检查字符串的内容类型:
isalpha()
:是否全是字母。isdigit()
:是否全是数字。isalnum()
:是否全是字母或数字。isspace()
:是否全是空白字符。
s = "Hello123"
print(s.isalnum()) # True
print("123".isdigit()) # True
总结
Python 的字符串功能强大且灵活,以下是关键点:
- 不可变性:字符串一旦创建,无法修改。
- 支持索引和切片:方便访问和提取子字符串。
- 丰富的方法:包括大小写转换、替换、查找、分割等。
- 格式化字符串:推荐使用 f-string。
- 支持多种编码:处理国际化文本时尤为重要。