Python3(8) 字符串
在 Python 编程世界里,字符串是极为常用的数据类型,无论是处理文本、构建程序逻辑,还是进行数据交互,都离不开它。这篇博客结合代码实例,详细梳理 Python3 字符串知识,方便后续复习回顾。
一、字符串的创建与访问
(一)创建字符串
使用单引号或双引号都能轻松创建字符串,将值赋给变量即可。示例代码如下:
(二)访问字符串中的值
Python 把单字符当作字符串处理。访问子字符串可借助方括号[]
截取,索引从 0 开始,-1 表示从末尾反向计数。例如:
str = "LEARNING"
print(str[0])
print(str[2:5])
上述代码中,str[0]
输出字符串的首字符L
;str[2:5]
按照左闭右开原则,截取从索引 2 到 4 的字符,输出AR
。
二、字符串的更新
通过截取部分字符串再与其他内容拼接,就能实现字符串更新。代码示例如下:
var = 'Python学习之路'
new_var = var[:3] + '真精彩'
print(new_var)
这段代码先截取var
的前 3 个字符,再拼接上 “真精彩”,最终输出更新后的字符串。
三、转义字符
在字符串需用特殊字符时,借助反斜杠\
转义。以常见的换行符\n
、制表符\t
为例:
print("第一行\n第二行")
print("姓名\t年龄")
print("姓名: \t小明\n年龄: \t18")
运行结果中,\n
使文本换行,\t
实现水平制表效果,让文本排版更规整。此外,\r
回车符能将其后内容移到字符串开头替换,如print("abc\rxyz")
会输出xyzbc
。
四、字符串运算符
(一)连接与重复
+
用于连接字符串,*
可重复输出。示例如下:
a = "Hello"
b = "World"
print(a + b)
print(a * 3)
代码分别展示了字符串连接结果HelloWorld
和重复输出结果HelloHelloHello
。
(二)索引、截取与成员判断
利用[]
索引、[:]
截取,结合in
和not in
判断成员。代码如下:
s = "Python基础"
print(s[2])
print(s[1:4])
print('P' in s)
print('Java' not in s)
依次输出索引 2 处的字符t
、截取的子串yth
,以及判断结果True
和True
。
(三)原始字符串
在字符串引号前加r
或R
,其中特殊字符不再转义。比如:
print(r'\n这是原始字符串')
输出为\n这是原始字符串
,\n
未被当作换行符处理。
五、字符串格式化
(一)格式化符号
Python 沿用 C 语言sprintf
函数语法,用%
格式化。常见符号如%s
(字符串)、%d
(整数) 、%f
(浮点数) 。示例:
name = "小红"
age = 20
height = 1.65
print("姓名:%s,年龄:%d,身高:%.2f米" % (name, age, height))
格式化后,浮点数保留两位小数输出。
(二)辅助指令
-
左对齐、+
显示正数符号、0
填充等。代码如下:
num = 10
print("%-5d" % num)
print("%+d" % num)
print("%05d" % num)
分别实现左对齐、显示正号、用 0 填充的效果。
(三)str.format () 与 f-string
str.format()
自 Python2.6 引入,增强了格式化功能。例如:
print("我叫{},今年{}岁".format("小李", 22))
Python3.6 起的 f-string 更简洁,变量或表达式用{}
包裹。示例:
city = "北京"
print(f"我在{city}生活")
Python3.8 还能用=
拼接运算表达式与结果,如x = 5; print(f'{x * 2=}')
,输出x * 2=10
。
六、特殊字符串形式
(一)三引号
三引号('''
或"""
)允许字符串跨多行,包含换行、制表符等特殊字符。常用于编写 HTML、SQL 语句。例如:
html = '''
<html>
<head><title>示例页面</title></head>
<body>欢迎来到我的页面</body>
</html>
'''
print(html)
保留了字符串的多行格式。
(二)Unicode 字符串
Python3 中所有字符串都是 Unicode,能表示丰富字符集,无需像 Python2 那样加u
前缀。比如:
text = "你好,世界!👋"
print(text)
可正常显示包含中文、表情符号的字符串。
七、字符串内建函数
(一)字符串操作函数
capitalize()
首字母大写,lower()
转小写,upper()
转大写,title()
标题化。示例:
s = "python is great"
print(s.capitalize())
print(s.lower())
print(s.upper())
print(s.title())
分别输出首字母大写、全小写、全大写和标题化的字符串。
(二)查找与替换函数
find()
查找子串,找到返回起始索引,否则返回 - 1;index()
类似,但子串不存在时抛异常;replace()
替换字符串。代码如下:
text = "Python是一门很棒的编程语言,Python很有趣"
print(text.find("很棒"))
print(text.index("Python"))
new_text = text.replace("Python", "Java")
print(new_text)
展示了查找和替换的功能。
(三)字符串判断函数
isalnum()
判断是否由字母和数字组成,isdigit()
判断是否全为数字,isspace()
判断是否全为空白字符。示例:
s1 = "123abc"
s2 = " "
s3 = "456"
print(s1.isalnum())
print(s2.isspace())
print(s3.isdigit())
输出相应的判断结果。
(四)其他函数
join()
用指定字符串连接序列元素,strip()
去除首尾空格或指定字符,len()
获取字符串长度。示例:
lst = ['a', 'b', 'c']
s = '-'.join(lst)
print(s)
text = " 你好 "
print(text.strip())
print(len(text))
实现连接、去空格和获取长度的操作。