一、字符串基础定义
字符串用单引号 / 双引号包裹,三引号支持多行文本
字符串是不可变序列,每个字符有固定索引(从 0 开始)
python
# 基础定义
s1 = 'hello'
s2 = "python"
s3 = '''hello
python''' # 多行字符串
二、核心操作:索引、切片、拼接、重复
- 索引取值
正索引:从左往右(0 开始)
负索引:从右往左(-1 为最后一位)
python
s = "python"
s[0] # 'p'
s[-1] # 'n'(最后一个字符)
- 切片([起始:结束:步长])
省略起始:从 0 开始
省略结束:到末尾
步长 - 1:字符串逆序
python
s = "abcdef"
s[:3] # 'abc'(前3个)
s[2:] # 'cdef'(索引2到末尾)
s[::-1] # 'fedcba'(逆序)
- 拼接与重复
拼接:+
重复:* 数字
python
"hello" + " world" # 'hello world'
"python" * 3 # 'pythonpythonpython'
- 长度计算
python
len("hello python") # 12(包含空格)
三、字符串常用方法(高频必背)
- 大小写转换
python
s = "hello python"
s.upper() # 全大写:HELLO PYTHON
s.lower() # 全小写:hello python
s.capitalize() # 首字母大写:Hello python
s.title() # 每个单词首字母大写:Hello Python
- 去除空白字符
python
s = " python "
s.strip() # 去除两端空格:python
s.lstrip() # 去除左侧空格
s.rstrip() # 去除右侧空格
- 替换与分割
替换:replace(旧串, 新串)
分割:split(分隔符) → 返回列表
python
"hello java".replace("java", "python") # 'hello python'
"hello python world".split(" ") # ['hello','python','world']
- 查找与统计
python
s = "hello python hello"
s.count("hello") # 2(统计子串出现次数)
s.find("t") # 2(查找第一次出现的索引,找不到返回-1)
- 拼接列表(join)
python
lst = ['a','b','c']
"".join(lst) # 'abc'
四、判断方法(返回布尔值)
python
"123".isdigit() # True(是否纯数字)
"abc".isalpha() # True(是否纯字母)
"Hello".startswith("H") # True(是否以指定字符开头)
"python".endswith("n") # True(是否以指定字符结尾)
"o" in "hello" # True(判断子串是否存在)
五、字符串格式化(推荐写法)
- f-string(最简单常用)
python
name = "张三"
age = 18
print(f"我叫{name},今年{age}岁")
- format 方法
python
print("我叫{},今年{}岁".format(name, age))
六、遍历与字符处理
python
# 遍历字符串
s = "python"
for char in s:
print(char)
# 分离字母和数字
s = "a1b2c3"
letters, digits = "", ""
for i in s:
if i.isalpha(): letters += i
elif i.isdigit(): digits += i
# 结果:letters=abc,digits=123
七、转义字符处理
取消转义:加\ 或 使用原始字符串r''
python
print("hello\\npython")
print(r"hello\npython") # 推荐
总结
核心操作:索引、切片、拼接、len ()
必背方法:upper()/lower()/strip()/replace()/split()/join()
高频判断:in、isdigit()、isalpha()、startswith()、endswith()
格式化优先用 f-string,简洁高效
字符串不可变,所有修改操作均返回新字符串