Python3 字符串

Python3 字符串知识点详解

Python3 字符串知识点详解

编程小白的零基础字符串操作指南 – 通俗易懂的解释和实用示例

1 什么是字符串?

字符串是什么?

在Python中,字符串就是一串字符的集合,可以包含字母、数字、符号、空格等。字符串是Python中最常用的数据类型之一。

你可以把字符串想象成由字符组成的项链,每个字符就像项链上的一颗珠子,它们按顺序排列。

# 字符串示例
greeting = “Hello, Python小白!”
website = ‘www.python.org’
empty = “” # 空字符串

提示: 在Python中,你可以使用单引号(‘ ‘)或双引号(” “)来创建字符串,二者没有区别。

创建多行字符串

当字符串很长或者需要换行时,可以使用三引号(”’ ”’ 或 “”” “””)来创建多行字符串。

# 多行字符串示例
poem = ”’床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。”’


# 打印多行字符串
print(poem)

注意: 三引号常用于文档字符串(docstring),用于解释函数或模块的功能。

2 字符串基本操作

字符串拼接

拼接就是把多个字符串连接起来形成一个新的字符串,使用加号(+)操作符。

first_name = “张”
last_name = “三”
full_name = first_name + last_name
print(full_name) # 输出:张三

另一种拼接方式

可以直接把字符串写在一起:

name = “李” “四”
print(name) # 输出:李四

重复字符串

使用星号(*)重复字符串:

laugh = “哈” * 5
print(laugh) # 输出:哈哈哈哈哈

索引和切片

字符串中的每个字符都有位置索引,从0开始计数。可以使用索引获取单个字符。

s = “Python”
print(s[0]) # 输出:P
print(s[3]) # 输出:h
print(s[-1]) # 输出:n(负数表示从右开始)

切片可以获取字符串的一部分,语法:字符串[开始索引:结束索引:步长]

s = “我爱Python编程”
print(s[2:8]) # 输出:Python
print(s[:2]) # 输出:我爱(从开头到索引2)
print(s[8:]) # 输出:编程(从索引8到结尾)
print(s[2:8:2]) # 输出:Pto(步长为2)

3 字符串常用方法

长度:len()

获取字符串中包含多少个字符

s = “Python”
print(len(s)) # 输出:6

查找:find()

查找子字符串的位置,找不到返回-1

s = “Hello World”
print(s.find(“World”)) # 输出:6

替换:replace()

替换字符串中的指定内容

s = “我喜欢苹果”
new_s = s.replace(“苹果”, “香蕉”)
print(new_s) # 输出:我喜欢香蕉

分割:split()

根据分隔符将字符串分割成列表

s = “苹果,香蕉,橙子”
fruits = s.split(“,”)
print(fruits) # 输出:[‘苹果’, ‘香蕉’, ‘橙子’]

连接:join()

将列表中的字符串元素连接成一个字符串

fruits = [‘苹果’, ‘香蕉’, ‘橙子’]
s = “, “.join(fruits)
print(s) # 输出:苹果, 香蕉, 橙子

大小写转换

upper()转大写,lower()转小写

s = “Python”
print(s.upper()) # 输出:PYTHON
print(s.lower()) # 输出:python

去除空白

strip()去除两端空白,lstrip()去除左侧,rstrip()去除右侧

s = ” Python “
print(s.strip()) # 输出:”Python”

判断开头结尾

startswith()判断是否以指定字符串开头,endswith()判断结尾

s = “hello.py”
print(s.endswith(“.py”)) # 输出:True

4 字符串格式化

f-string (推荐)

Python3.6+引入,在字符串前加f,用{}直接插入变量

name = “小明”
age = 18
info = f”姓名:{name},年龄:{age}”
print(info) # 输出:姓名:小明,年龄:18

表达式计算

a = 10
b = 20
print(f”{a} + {b} = {a + b}”) # 输出:10 + 20 = 30

格式控制

price = 19.99
print(f”价格:{price:.2f}元”) # 输出:价格:19.99元

format() 方法

使用{}作为占位符,通过format()方法传入值

template = “你好,{}!今天是{}。”
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,转义字符不再生效,适用于正则表达式、文件路径等

print(r”第一行\n第二行”) # 输出:第一行\n第二行
path = r”C:\new_folder\file.txt”
print(path) # 输出:C:\new_folder\file.txt

6 重要特性

字符串不可变性

字符串一旦创建就不可修改,所有”修改”操作实际上是创建了新的字符串

s = “Python”
# 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,处理中文更方便。

Python3 字符串核心要点总结

✓ 字符串是字符序列,可用单引号、双引号或三引号创建

✓ 使用索引和切片获取部分字符串

✓ 字符串不可变,修改操作会创建新字符串

✓ 常用方法:split(), join(), replace(), find(), strip()等

✓ 推荐使用f-string进行字符串格式化

✓ 处理路径或正则表达式时使用原始字符串(r””)

✓ Python3默认使用Unicode编码,完美支持中文

© 2023 Python编程指南 – 助你从小白到高手

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部