Python3 字符串知识点详解
编程小白的零基础字符串操作指南 – 通俗易懂的解释和实用示例
1 什么是字符串?
字符串是什么?
在Python中,字符串就是一串字符的集合,可以包含字母、数字、符号、空格等。字符串是Python中最常用的数据类型之一。
你可以把字符串想象成由字符组成的项链,每个字符就像项链上的一颗珠子,它们按顺序排列。
greeting = “Hello, Python小白!”
website = ‘www.python.org’
empty = “” # 空字符串
提示: 在Python中,你可以使用单引号(‘ ‘)或双引号(” “)来创建字符串,二者没有区别。
创建多行字符串
当字符串很长或者需要换行时,可以使用三引号(”’ ”’ 或 “”” “””)来创建多行字符串。
poem = ”’床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。”’
# 打印多行字符串
print(poem)
注意: 三引号常用于文档字符串(docstring),用于解释函数或模块的功能。
2 字符串基本操作
字符串拼接
拼接就是把多个字符串连接起来形成一个新的字符串,使用加号(+)操作符。
last_name = “三”
full_name = first_name + last_name
print(full_name) # 输出:张三
另一种拼接方式
可以直接把字符串写在一起:
print(name) # 输出:李四
重复字符串
使用星号(*)重复字符串:
print(laugh) # 输出:哈哈哈哈哈
索引和切片
字符串中的每个字符都有位置索引,从0开始计数。可以使用索引获取单个字符。
print(s[0]) # 输出:P
print(s[3]) # 输出:h
print(s[-1]) # 输出:n(负数表示从右开始)
切片可以获取字符串的一部分,语法:字符串[开始索引:结束索引:步长]
print(s[2:8]) # 输出:Python
print(s[:2]) # 输出:我爱(从开头到索引2)
print(s[8:]) # 输出:编程(从索引8到结尾)
print(s[2:8:2]) # 输出:Pto(步长为2)
3 字符串常用方法
长度:len()
获取字符串中包含多少个字符
print(len(s)) # 输出:6
查找:find()
查找子字符串的位置,找不到返回-1
print(s.find(“World”)) # 输出:6
替换:replace()
替换字符串中的指定内容
new_s = s.replace(“苹果”, “香蕉”)
print(new_s) # 输出:我喜欢香蕉
分割:split()
根据分隔符将字符串分割成列表
fruits = s.split(“,”)
print(fruits) # 输出:[‘苹果’, ‘香蕉’, ‘橙子’]
连接:join()
将列表中的字符串元素连接成一个字符串
s = “, “.join(fruits)
print(s) # 输出:苹果, 香蕉, 橙子
大小写转换
upper()转大写,lower()转小写
print(s.upper()) # 输出:PYTHON
print(s.lower()) # 输出:python
去除空白
strip()去除两端空白,lstrip()去除左侧,rstrip()去除右侧
print(s.strip()) # 输出:”Python”
判断开头结尾
startswith()判断是否以指定字符串开头,endswith()判断结尾
print(s.endswith(“.py”)) # 输出:True
4 字符串格式化
f-string (推荐)
Python3.6+引入,在字符串前加f,用{}直接插入变量
age = 18
info = f”姓名:{name},年龄:{age}”
print(info) # 输出:姓名:小明,年龄:18
表达式计算
b = 20
print(f”{a} + {b} = {a + b}”) # 输出:10 + 20 = 30
格式控制
print(f”价格:{price:.2f}元”) # 输出:价格:19.99元
format() 方法
使用{}作为占位符,通过format()方法传入值
result = template.format(“小明”, “星期一”)
print(result) # 输出:你好,小明!今天是星期一。
注意: 虽然还有旧的%格式化方式,但官方推荐使用f-string或format()方法。
格式说明符示例
print(“价格:{:.2f}”.format(15.5)) # 输出:价格:15.50
# 百分比格式
print(“占比:{:.1%}”.format(0.875)) # 输出:占比:87.5%
# 千分位分隔
print(“人数:{:,}”.format(1000000)) # 输出:人数:1,000,000
5 特殊字符串处理
转义字符
使用反斜杠(\)表示特殊字符
print(“第一行\n第二行”) # \n 换行
print(“制表符\t分隔”) # \t 制表符
print(“双引号:\”\””) # \” 双引号
print(“反斜杠:\\”) # \\ 反斜杠本身
原始字符串
在字符串前加r,转义字符不再生效,适用于正则表达式、文件路径等
path = r”C:\new_folder\file.txt”
print(path) # 输出:C:\new_folder\file.txt
6 重要特性
字符串不可变性
字符串一旦创建就不可修改,所有”修改”操作实际上是创建了新的字符串
# s[0] = “J” # 错误!字符串不可变
new_s = “J” + s[1:] # 正确做法:创建新字符串
print(new_s) # 输出:Jython
提示: 因为字符串不可变,所以在大量字符串拼接时效率较低,此时可以考虑使用join()方法
字符串编码
Python3使用Unicode编码字符串,支持全世界各种语言
chinese = “你好,世界!”
print(chinese) # 输出:你好,世界!
# 编码转换
s = “Python编程”
utf8_bytes = s.encode(“utf-8”) # 转为字节序列
print(utf8_bytes)
print(utf8_bytes.decode(“utf-8”)) # 转回字符串
注意: Python2中字符串处理方式不同,但Python3中默认使用Unicode,处理中文更方便。