一、学习知识点概要
字符串(定义、切片和拼接、内置方法、格式化)
二、学习内容
1.字符串的定义
Python中字符串被定义为引号之间的字符集合,支持成对的单引号或双引号。
▲python的常用转义字符
转义字符 | 描述 |
---|---|
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\n | 换行 |
\t | 横向制表符(TAB) |
\r | 回车 |
【例子1】如果字符串中需要出现单引号或双引号,可以使用转义符号\对字符串中的符号进行转义。
print('C:\\bye') # C:\bye
【例子2】原始字符串只需要在字符串前边加一个英文字母r即可。
print(r'C:\Program Files\Intel\Wifi\Help')
# C:\Program Files\Intel\Wifi\Help
【例子3】三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print(para_str)
# 这是一个多行字符串的实例
# 多行字符串可以使用制表符
# TAB ( )。
# 也可以使用换行符 [
# ]。
2.字符串的切片与拼接
①类似于元组具有不可修改性
②从0开始(同Java)
③切片通常写成start:end这种形式,包括start索引对应的元素,不包括end索引对应的元素。(即左闭右开)
④索引值可正可负,正索引从 0 开始,从左往右;负索引从 -1 开始,从右往左。使用负数索引时,会从最后一个元素开始计数。最后一个元素的位置编号是 -1。
str1 = 'I Love LsgoGroup'
print(str1[:6] + " 插入的字符串 " + str1[6:])
# I Love 插入的字符串 LsgoGroup
s = 'Python'
print(s) # Python
print(s[2:4]) # th
print(s[-5:-2]) # yth
print(s[2]) # t
print(s[-1]) # n
3.字符串的常用内置方法
(1)capitalize():将字符串的第一个字符转换为大写
(2)lower():转换字符串中的小写字母为大写。
(3)swapcase():将字符串中大写转换为小写,小写转换为大写。
(4)count(srt,beg=0,end=len(string)) 返回str在 string 里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数。
(5)endswith(suffix,beg=0,end=len(string))检查字符串是否以指定子字符串suffix结束,如果是,返回True,否则返回False。如果beg和end指定值,则在指定范围内检查。
(6)startswith(substr,beg=0,end=len(string))检查字符串是否以指定子字符串substr开头,如果是,返回True,否则返回False。如果beg和end指定值,则在指定范围内检查。
(7)find(str,beg=0,end=len(string))检测str是否包含在字符串中,如果指定范围beg和end,则检查是否包含再指定范围内,如果包含,返回开始的索引值,否则返回-1。
(8)rfind(str,beg=0,end=len(string))类似于find()函数,不过从右边开始寻找。
(9)isnumeric()如果字符串中只包含数字字符,则返回True,否则返回False。
(10)ljust(width[,fillchar])返回一个原字符串左对齐,并使用fillchar(默认空格)填充至长度width的新字符串。
(11)rjust(width[,fillchar])返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度width的新字符串。
(12)lstrip([chars]) 截掉字符串左边的空格或指定字符。
(13)rstrip([chars]) 删除字符串末尾的空格或指定字符。
(14)strip([chars]) 在字符串上执行lstrip()和rstrip()。
(15)partition(sub)找到子字符串sub,把字符串分为一个三元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回('原字符串','','')
(16)rpartition(sub)类似于partition()方法,不过从右边开始寻找。
(17)replace(old,new[,max])将字符串中的old替换成new,若max指定,则替换不超过max次。
(18)split(str="",num)不带参数默认是以空格为分隔符切片字符串,如果num参数有设置,则仅分隔num个子字符串,返回切片后的子字符串拼接的列表。
(19)splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数keepdens为 False,不包含换行符,如果为 True,则保留换行符。
(20)maketrans(intab,outtab)创建字符映射的转换表,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
(21)translate(table,deletechars="")根据参数table给出的表,转换字符串的字符,要过滤掉的字符放到deletechars参数中。
4.字符串格式化
①format格式化参数
(1)位置参数
(2)关键字参数
(3)位置参数要在关键
(4)保留小数点后两位
str8 = "{0} Love {1}".format('I', 'Lsgogroup') # 位置参数
print(str8) # I Love Lsgogroup
str8 = "{a} Love {b}".format(a='I', b='Lsgogroup') # 关键字参数
print(str8) # I Love Lsgogroup
str8 = "{0} Love {b}".format('I', b='Lsgogroup') # 位置参数要在关键字参数之前
print(str8) # I Love Lsgogroup
str8 = '{0:.2f}{1}'.format(27.658, 'GB') # 保留小数点后两位
print(str8) # 27.66GB
②python字符串格式化符号
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串,用str()方法处理对象 |
%r | 格式化字符串,用rper()方法处理对象 |
%d | 格式化整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | 根据值的大小决定使用%f或%e |
%G | 作用同%g,根据值的大小决定使用%f或%E |
③格式化操作符辅助指令
符号 | 功能 |
---|---|
m.n | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
- | 用作左对齐 |
+ | 在正数前面显示加号( + ) |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
三、学习问题与解答(课后题)
1、字符串函数回顾
-
怎么批量替换字符串中的元素?
replace(old,new[,max])
-
怎么把字符串按照空格进⾏拆分?
print(str.strip(),rpartition(' '))
-
怎么去除字符串⾸位的空格?
print(str.lstrip())
2、实现isdigit函数
题目要求
实现函数isdigit, 判断字符串里是否只包含数字0~9
四、学习思考与总结
字符串的内容真的很多很杂,即使专心看都要看很久,或许可以通过看些视频和例题来加深印象吧。