在Python编程中,字符串(String) 是最常用、最基础的数据类型之一,无论是处理文本、拼接内容、数据清洗,还是日常开发,都离不开字符串。
这篇文章将从零开始,带你系统学习Python字符串,步骤清晰、案例丰富,新手也能一步步吃透!
一、什么是Python字符串?
简单来说,字符串就是由单个/多个字符组成的有序文本序列,用来表示文字、符号、数字组合等非数值型数据。
在Python里,字符串的核心特征:
- 属于不可变序列(创建后不能直接修改原字符串,修改会生成新字符串);
举个最简单的例子:"Hello Python"、'123456'、"""我是多行字符串""" 都是合法的字符串。
二、字符串的3种定义方式(必掌握)
Python提供了3种定义字符串的语法,适用场景不同,按需选择即可:
1. 单引号定义:'字符串内容'
适合定义单行、短文本字符串,语法最简洁。
# 单引号字符串
str1 = '我是Python字符串'
print(str1) # 输出:我是Python字符串
2. 双引号定义:"字符串内容"
和单引号功能完全一致,唯一优势:字符串内部可以直接包含单引号,无需转义。
# 字符串内含单引号,用双引号包裹更方便
str2 = "我是'双引号'字符串"
print(str2) # 输出:我是'双引号'字符串
3. 三引号定义:'''字符串''' 或 """字符串"""
两大核心用途:
# 三引号定义多行字符串
str3 = '''我是
多行
字符串'''
print(str3)
# 输出:
# 我是
# 多行
# 字符串
✅ 小总结:单行文本用单/双引号,多行文本用三引号。
三、字符串的核心特性:不可变性
这是Python字符串最重要的特性,新手一定要牢记:字符串创建后,无法直接修改原字符串中的某个字符,如果强行修改,会直接报错!
str1 = 'Python'
# 尝试修改第1个字符,会报错!
str1[0] = 'J'# 报错:TypeError: 'str' object does not support item assignment
如果需要修改字符串,只能重新生成一个新字符串:
str1 = 'Python'
new_str = 'J' + str1[1:] # 拼接生成新字符串
print(new_str) # 输出:Jython
四、字符串的基础操作(高频使用)
1. 字符串拼接:+ 号
用 + 可以直接把多个字符串拼接成一个新字符串。
a = 'Hello'
b = 'Python'
c = a + ' ' + b # 拼接+加空格
print(c) # 输出:Hello Python
2. 字符串重复:* 号
用 * + 数字,实现字符串重复N次。
str1 = 'Hi!'
print(str1 * 3) # 输出:Hi!Hi!Hi!
3. 获取字符串长度:len() 函数
用内置函数 len() 快速获取字符串的字符个数。
str1 = 'Python学习'
print(len(str1)) # 输出:8(6个英文+2个中文,都算1个字符)
4. 字符串格式化:3种常用方式
拼接复杂字符串时,格式化比 + 更简洁、更优雅:
方式1:f-string(Python3.6+ 推荐,最简单)
name = '小明'
age = 20
# 直接在字符串中嵌入变量
str1 = f'我叫{name},今年{age}岁'
print(str1) # 输出:我叫小明,今年20岁
方式2:format() 方法(兼容性强)
str1 = '我叫{},今年{}岁'.format('小明', 20)
print(str1)
方式3:% 占位符(老式写法)
str1 = '我叫%s,今年%d岁' % ('小明', 20)
print(str1)
✅ 优先用f-string,语法最直观、代码最简洁!
五、字符串的索引与切片(核心技能)
字符串是有序序列,每个字符都有对应的位置编号(索引),支持通过索引取值、切片截取。
1. 索引:获取单个字符
语法:字符串[索引值]
str1 = 'Python'
# 正向索引
print(str1[0]) # 第1个字符:P
print(str1[5]) # 最后1个字符:n
# 反向索引
print(str1[-1]) # 最后1个字符:n
print(str1[-2]) # 倒数第2个字符:o
2. 切片:截取子字符串
语法:字符串[起始索引:结束索引:步长]
str1 = 'HelloPython'
# 截取索引0-4(不包含5):Hello
print(str1[0:5])
# 省略起始索引:从开头截取到索引5
print(str1[:5])
# 省略结束索引:从索引5截取到结尾
print(str1[5:])
# 步长为2:每隔1个字符取一个
print(str1[::2])
# 步长为-1:字符串反转
print(str1[::-1])
六、字符串常用内置方法(实战必备)
Python为字符串提供了几十种内置方法,这里整理开发最常用的10个,背会就能应对80%场景:
1. 大小写转换
str1 = 'hello python'
print(str1.upper()) # 转大写:HELLO PYTHON
print(str1.lower()) # 转小写:hello python
print(str1.title()) # 首字母大写:Hello Python
2. 去除空白字符
str1 = ' Python '
print(str1.strip()) # 去除首尾空格:Python
print(str1.lstrip()) # 去除左侧空格:Python
print(str1.rstrip()) # 去除右侧空格: Python
3. 查找与替换
str1 = 'Hello Python'
# 查找子字符串索引,找不到返回-1
print(str1.find('Python')) # 输出:6
# 替换字符串
print(str1.replace('Python', 'Java')) # 输出:Hello Java
4. 判断字符串类型
str1 = '123456'
print(str1.isdigit()) # 判断是否全为数字:True
str2 = 'abc'
print(str2.isalpha()) # 判断是否全为字母:True
5. 分割与拼接
str1 = 'a,b,c,d'
# 按指定字符分割成列表
print(str1.split(',')) # 输出:['a', 'b', 'c', 'd']
list1 = ['a', 'b', 'c']
# 用指定字符拼接列表为字符串
print('-'.join(list1)) # 输出:a-b-c
七、字符串的转义字符
当字符串中需要包含引号、换行、制表符等特殊字符时,用反斜杠 \ 实现转义:
示例:
# 包含换行和单引号
str1 = '第一行\n第二行\'带引号\''
print(str1)
# 输出:
# 第一行
# 第二行'带引号'
八、字符串的遍历
用 for 循环可以逐个取出字符串中的每一个字符:
str1 = 'Python'
for char in str1:
print(char)
# 依次输出:P y t h o n
九、总结:字符串核心知识点速记
- 操作:拼接(+)、重复(*)、长度(len());
- 取值:索引([0]、[-1])、切片([start:end:step]);
- 常用方法:strip()、replace()、split()、upper()、find();
掌握以上内容,Python字符串的基础和实战场景就完全够用了!字符串是编程的基石,熟练运用后,无论是文本处理、爬虫解析,还是日常开发,都会事半功倍~