一、字符串基础
字符串(String)是 Python 中表示文本的数据类型,本质是字符的有序序列。
1. 字符串的定义
可以用单引号' '、双引号" "、三引号''' '''/""" """定义:
python
运行
# 单/双引号(单行字符串)
str1 = 'Hello Python'
str2 = "你好,Python"
# 三引号(支持多行字符串,也可用于注释)
str3 = '''这是一个
多行字符串'''
str4 = """Python字符串
操作学习"""
# 转义字符(处理特殊字符,如换行、引号)
str5 = 'He said: "I\\'m OK"' # 输出:He said: "I'm OK"
str6 = "路径:C:\\\\Users\\\\test" # 输出:路径:C:\\Users\\test
str7 = "第一行\\n第二行" # \\n表示换行
2. 字符串的不可变性
Python 字符串是不可变对象,一旦创建就无法直接修改其中的字符,修改本质是创建新字符串:
python
运行
s = "hello"
# s[0] = "H" # 报错:TypeError,字符串不可直接修改
new_s = "H" + s[1:] # 正确:创建新字符串 "Hello"
二、字符串核心操作
1. 索引与切片(获取字符串中的字符)
- 索引:通过字符串[下标]获取单个字符,下标从0开始(正向)或-1开始(反向)。
- 切片:通过字符串[起始:结束:步长]截取子串(左闭右开,步长默认 1)。
python
运行
s = "Python"
# 索引
print(s[0]) # 输出:P(正向第1个字符)
print(s[-1]) # 输出:n(反向第1个字符)
# 切片
print(s[1:4]) # 输出:yth(从下标1到3,不包含4)
print(s[:3]) # 输出:Pyt(起始省略,默认从0开始)
print(s[3:]) # 输出:hon(结束省略,默认到末尾)
print(s[::2]) # 输出:Pto(步长2,隔一个取一个)
print(s[::-1]) # 输出:nohtyP(步长-1,字符串反转)
2. 常用字符串方法(高频)
| len(str) | 获取字符串长度 | len("Python") → 6 |
| str.lower() | 转小写 | "PYTHON".lower() → "python" |
| str.upper() | 转大写 | "python".upper() → "PYTHON" |
| str.strip() | 去除首尾空格 / 指定字符 | " abc ".strip() → "abc" |
| str.split(sep) | 按分隔符分割成列表 | "a,b,c".split(",") → ["a","b","c"] |
| str.join(iter) | 将可迭代对象用字符串连接 | "-".join(["a","b","c"]) → "a-b-c" |
| str.replace(old, new) | 替换子串 | "abc".replace("a", "x") → "xbc" |
| str.find(sub) | 查找子串位置,找不到返回 – 1 | "Python".find("tho") → 2 |
| str.count(sub) | 统计子串出现次数 | "ababa".count("aba") → 1 |
| str.startswith(prefix) | 判断是否以指定前缀开头 | "Python".startswith("Py") → True |
| str.endswith(suffix) | 判断是否以指定后缀结尾 | "Python".endswith("on") → True |
示例代码:
python
运行
# 综合示例
text = " Hello Python! "
# 去除首尾空格
text_stripped = text.strip()
print(text_stripped) # 输出:Hello Python!
# 转大写
text_upper = text_stripped.upper()
print(text_upper) # 输出:HELLO PYTHON!
# 替换
text_replace = text_stripped.replace("Python", "World")
print(text_replace) # 输出:Hello World!
# 分割与连接
words = text_stripped.split(" ") # 按空格分割
print(words) # 输出:['Hello', 'Python!']
new_text = "-".join(words)
print(new_text) # 输出:Hello-Python!
3. 字符串格式化(拼接 / 格式化输出)
常用 3 种方式:
python
运行
# 方式1:+ 拼接(适合简单场景)
name = "小明"
age = 18
print("姓名:" + name + ",年龄:" + str(age)) # 需手动转类型
# 方式2:format() 方法(通用)
print("姓名:{},年龄:{}".format(name, age)) # 输出:姓名:小明,年龄:18
print("姓名:{0},年龄:{1}".format(name, age)) # 指定位置
print("姓名:{n},年龄:{a}".format(n=name, a=age)) # 指定参数名
# 方式3:f-string(Python3.6+,推荐,简洁高效)
print(f"姓名:{name},年龄:{age}") # 输出:姓名:小明,年龄:18
print(f"明年年龄:{age + 1}") # 支持表达式,输出:明年年龄:19
三、字符串常用判断
python
运行
s1 = "12345"
s2 = "abc123"
s3 = "abc"
s4 = " "
print(s1.isdigit()) # 判断是否全为数字 → True
print(s2.isalnum()) # 判断是否全为字母/数字 → True
print(s3.isalpha()) # 判断是否全为字母 → True
print(s4.isspace()) # 判断是否全为空格 → True

