Python 字符串(String)核心知识点
字符串是 Python 中表示文本的数据类型,使用单引号(' ')、双引号(
" ")或三引号(''' '''/""" """,支持多行)包裹,且不可变(创建后无法修改单个字符)。1. 字符串创建与基本特性
- 创建方式:直接赋值即可,三引号用于多行文本或保留格式。
s1 = 'hello' # 单引号 s2 = "world" # 双引号 s3 = '''hello # 三引号(多行) world''' - 核心特性:
- 不可变:
s1[0] = 'H'会报错,需通过切片 / 拼接生成新字符串。 - 可迭代:支持
for char in s1: print(char)遍历每个字符。
- 不可变:
2. 字符串访问:索引与切片
- 索引:通过
[下标]访问单个字符,下标从 0 开始(正向) 或 -1 开始(反向,最后一个字符为 -1)。s = 'python' print(s[0]) # 输出 'p'(正向第1个) print(s[-1]) # 输出 'n'(反向第1个) - 切片:通过
[start:end:step]截取子串,左闭右开(包含 start,不包含 end),step 为步长(默认 1)。print(s[1:4]) # 输出 'yth'(从1到3,步长1) print(s[::2]) # 输出 'pto'(全串,步长2,隔1取1) print(s[::-1]) # 输出 'nohtyp'(步长-1,反转字符串)
3. 常用操作:拼接、重复、成员判断
- 拼接:用
+连接字符串(仅字符串间可拼接,不能直接拼数字)。print('he' + 'llo') # 输出 'hello' - 重复:用
*重复字符串 n 次。print('hi' * 3) # 输出 'hihihi' - 成员判断:用
in/not in判断字符 / 子串是否在原字符串中,返回布尔值。print('ll' in 'hello') # 输出 True
4. 核心内置方法(常用)
字符串方法均返回新字符串,不修改原字符串(因不可变),常用方法如下:
- 大小写转换:
s.upper():全部转为大写(如'hello'.upper()→'HELLO')。s.lower():全部转为小写(如'HELLO'.lower()→'hello')。s.title():每个单词首字母大写(如'hello world'.title()→'Hello World')。
- 去除空白:
s.strip():去除首尾空白(含空格、换行\n、制表符\t)。s.lstrip()/s.rstrip():仅去除左 / 右空白。
- 查找与替换:
s.find(sub):返回子串 sub 第一次出现的下标,不存在返回-1(如'hello'.find('l')→2)。s.replace(old, new, count):将 old 替换为 new,count 可选(指定替换次数,默认全部)。
- 分割与连接:
s.split(sep):按 sep 分割字符串,返回列表(sep 默认为空白,如'a,b,c'.split(',')→['a','b','c'])。sep.join(list):用 sep 连接列表元素为字符串(如'-'.join(['a','b'])→'a-b')。
- 判断类型:
s.isdigit():判断是否全为数字(返回布尔值)。s.isalpha():判断是否全为字母(返回布尔值)。
5. 格式化字符串(3 种方式)
用于将变量嵌入字符串,常用 3 种格式:
- % 格式化:用
%s(字符串)、%d(整数)、%f(浮点数)占位。name = 'Alice' print('Hello %s' % name) # 输出 'Hello Alice' - str.format():用
{}占位,支持位置 / 关键字参数。print('Hello {}'.format(name)) # 位置参数,输出 'Hello Alice' print('Age: {age}'.format(age=20)) # 关键字参数,输出 'Age: 20' - f-string(Python 3.6+,推荐):在字符串前加
f,{变量名}直接嵌入,简洁高效。age = 20 print(f'Name: {name}, Age: {age}') # 输出 'Name: Alice, Age: 20'
6. 转义字符
用于表示无法直接输入的字符,以
\ 开头,常见:\n:换行\t:制表符(类似按 Tab 键)\'/\":在单 / 双引号字符串中,表示字面意义的引号(如'He said: "Hi"')r'':原始字符串,忽略转义(如r'C:\new'表示路径C:\new,而非换行)

浙公网安备 33010602011771号