字符串声明:《Python 从入门到项目实践》7-章节 个人学习笔记
在Python开发过程中,为了实现某项功能,经常需要对某些字符串进行特殊处理
比如拼接字符串、截取字符串、格式化字符串等
拼接字符串
在Python中,使用 “+” 号运算符可完成对多个字符串的拼接从而生成一个新的字符串对象
str1 = '人生苦短'str2 = '我用Python'print(str1 + str2) # 人生苦短我用Python
在Python中,字符串不允许直接与其他类型的数据拼接,否则抛出异常
str3 = '计算机'num = 1024print(str3 + num) # TypeError: unsupported operand type(s) for +: 'int' and 'str'
在Python中,可以通过将整数转换成字符串,然后再与字符串进行拼接
str3 = '计算机'num = 1024print(str3 + str(num)) # 计算机1024
计算字符串长度
在Python中,提供len()函数计算字符串的长度
通过len()函数计算字符串的长度时,不区分中文、英文和数字,所有字符都认为是一个
"""语法格式: len(string)参数说明: string:指定要进行长度统计的字符串"""str4 = '人生苦短,我用Python!'print(len(str4)) # 14
截取字符串
在Python中,由于字符串也属于序列,所以要截取字符串,可以采用切片的方法实现
"""语法格式: string[start : ent : step]参数说明: string:表示要截取的字符串 start:表示要截取的第一个字符串索引(包括该字符),默认为0 end:表示要截取的最后一个字符串索引(不包括该字符),默认为字符串的长度 step:步长,默认为1"""str5 = '人生苦短,我用Python!'# 截取第一个字符print(str5[1]) # 生# 从第6个字符截取print(str5[5:]) # 我用Python!# 从左边开始截取5个字符print(str5[:5]) # 人生苦短,# 截取从第3个到第5个字符print(str5[2:5]) # 苦短, # 指定的索引不存在,抛出异常print(str5[15]) # IndexError: string index out of range
分割字符串
在Python中,字符串对象的split()方法可以实现对字符串分割
在使用split()方法时,如果不指定参数,默认采用空白符进行分割
"""语法格式: str.split[sep, maxsplit]参数说明: str:表示要进行分割的字符串 sep:用于指定分隔符,可以是多个字符,默认为None maxsplit:可选参数,用于指定分割的次数 返回值:分割后的字符串列表"""str6 = '人 生 苦 短, >>> 我用Python!'# 采用默认分隔符进行分割print(str6.split()) # ['人', '生', '苦', '短,', '>>>', '我用Python!']# 通过 , 分割字符串print(str6.split(',')) # ['人 生 苦 短', ' >>> 我用Python!']# 通过多个字符进行分割print(str6.split('>>>')) # ['人 生 苦 短, ', ' 我用Python!']
检索字符串
在Python中,字符串对象提供了count()、find()、index()、startwith()、enDWith()用于字符串查找
count()方法用于检索指定字符串在另外一个字符串出现的次数
如果检索的字符串不存在,则返回0;存在则返回出现的次数
"""语法格式: str.count(sub [, start [, end ]])参数说明: str:表示原字符串 sub:表示要检索的子字符串 start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索 end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾"""# 检索 > 出现的次数print(str7.count('>')) # 3# 检索不存在的情况print(str7.count('KT')) # 0
find()方法用于检索是否包含指定的子字符串
如果检索的字符串不存在,则返回-1;如果包含则返回首次出现该子字符串时的索引
"""语法格式: str.find(sub [, start [, end ]])参数说明: str:表示原字符串 sub:表示要检索的子字符串 start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索 end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾"""str8 = 'ABcdaABCD'# 检索D的在字符串中首次出现的索引print(str8.find('D')) # 3# 检索不存在的情况print(str8.find('E')) # -1
index()方法用于返回子字符串在原字符串中首次出现的位置索引
当指定的字符串不存在时会抛出异常
"""语法格式: str.index(sub [, start [, end ]])参数说明: str:表示原字符串 sub:表示要检索的子字符串 start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索 end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾"""str9 = 'ABcdaABCD'# 检索D的首次索引print(str9.index('D')) # 3# 检索不存在的情况print(str9.index('E')) # ValueError: substring not found
startwith()方法用于检索字符串是否以指定字符串开头
如果是则返回True,否则返回False
"""语法格式: str.startswith(perfix [, start [, end ]])参数说明: str:表示原字符串 perfix:表示要检索的子字符串 start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索 end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾"""str10 = 'ABcdaABCD'# 检索D的首次索引print(str10.startswith('A')) # True# 检索不存在的情况print(str10.startswith('E')) # False
enDWith()方法用于检索字符串是否以指定字符串结尾
如果是则返回True,否则返回False
"""语法格式: str.endswith(perfix [, start [, end ]])参数说明: str:表示原字符串 perfix:表示要检索的子字符串 start:可选参数,表示检索范围的起始位置的索引,默认从头开始检索 end:可选参数,表示检索范围的结束位置的索引,默认一直检索到结尾"""str10 = 'ABcdaABCD'# 检索D的首次索引print(str10.endswith('D')) # True# 检索不存在的情况print(str10.endswith('E')) # False
字母的大小写转换
在Python中,字符串对象提供了lower()和upper()方法进行字母的大小写转换
lower()方法用于将字符串中的大写字母转换为小写字母
"""语法格式: str.lower()参数说明: str:表示要进行转换的字符串"""str11 = 'ABcdaABCD'# 将大写转成小写print(str11.lower()) # abcdaabcd
upper()方法用于将字符串中的大写字母转换为小写字母
"""语法格式: str.upper()参数说明: str:表示要进行转换的字符串"""str12 = 'abcdaabcd'# 将小写转成大写print(str12.upper()) # ABcdaABCD
去除字符串中的空格和特殊字符
在Python中,字符串对应提供了strip()、rstrip()、lstrip()方法可以实现去掉字符串中的空格或特殊字符
strip()方法用于去掉字符串左、右两边的空格或特殊字符
"""语法格式: str.strip([chars])参数说明: str:表示要去掉空格或特殊字符的字符串 chars:可选参数,用于指定要去除的字符"""str13 = ' abcdaabcd '# 去除字符串两侧空格print(str13.strip()) # abcdaabcd# 去掉字符串两侧的@str14 = '@abcdaabcd@'print(str14.strip('@')) # abcdaabcd
rstrip()方法用于出掉字符串右侧的空格或特殊字符
"""语法格式: str.rstrip([chars])参数说明: str:表示要去掉空格或特殊字符的字符串 chars:可选参数,用于指定要去除的字符"""str15 = 'abcdaabcd '# 去除字符串右测的空格print(str15.rstrip()) # abcdaabcd# 去掉字符串右侧的@str16 = '@abcdaabcd@'print(str16.rstrip('@')) # @abcdaabcd
lstrip()方法用于出掉字符串左侧的空格或特殊字符
"""语法格式: str.lstrip([chars])参数说明: str:表示要去掉空格或特殊字符的字符串 chars:可选参数,用于指定要去除的字符"""str17 = ' abcdaabcd'# 去除字符串左测的空格print(str17.lstrip()) # abcdaabcd# 去掉字符串左侧的@str18 = '@abcdaabcd@'print(str18.lstrip('@')) # abcdaabcd@
格式化字符串
在Python中,可以使用"%" *** 作符或使用字符串对象的format()方法实现格式化字符串
使用 % 实现格式化字符串
"""语法格式: '%[-][+][0][m][.n]格式化字符' %exp参数说明: -: 可选参数, 用于指定左对齐(正数前方无负号,负数前方加负号) +:可选参数, 用于指定右对齐(正数前方无负号,负数前方加负号) 0: 可选参数, 表示右对齐(正数前方元符号, 负数前方加负号; 用0填充空白处,一般与m参数配合使用) m: 可选参数, 表示占有宽度 .n: 可选参数, 表示小数点后保留的位数 格式化字符: 用于指定类型 exp: 要转换的项; 如果要指定的项有多个, 以元组的形式进行指定"""# %s --> 字符串(采用str()显示)print('%s笑哈哈' % 'BLL') # BLL笑哈哈# %c --> 单个字符, 否则报TypeError: %c requires int or charprint('%c笑哈哈' % 'L') # L笑哈哈# %d 或者 %i --> 十进制整数print('%d, %i' % (4, 6)) # 4, 6# %x --> 十六进制整数print('%x' % 15) # f# %f 或者 %F --> 浮点数print('%f, %F' % (17.5, 20)) # 17.500000, 20.000000# %r --> 字符串(采用repr()显示)print('%r笑哈哈' % 'BLL') # 'BLL'笑哈哈# %o --> 八进制print('%o' % 15) # 17# %e --> 指数(基底为e)print('%e' % 15) # 1.500000e+01# %E --> 指数(基底为E)print('%E' % 15) # 1.500000E+01# %% --> 字符串%print('%d%%' % 18) # 18%
使用字符串对象的format()方法实现格式化字符串
在这里插入代码片
正则表达式基础在处理字符串时,经常会有查询符合某些复杂规则的字符串的需求
正则表达式就是用于描述这些规则的工具;换句话来说,正则表达式就是记录文本规则的代码
行定位符
行定位符就是用来描述子串的边界。 “^” 表示行的开始;"$" 表示行的结尾
import re"""^C : 判断字符串以C开头(从字符串的左边第一个开始匹配)"""str1 = 'China is powerful'print(re.findall('^C', str1)) # ['C']"""ul$ : 判断字符串以字母ul结尾(从字符串的右边第一个开始匹配)"""str2 = 'China is powerful'print(re.findall('ul$', str2)) # ['ul']
元字符
除了上面介绍的 ^ 和 $ 外,正则表达式里还有更多的元字符
代码 | 说明 |
---|---|
.(点) | 匹配除换行符以外的任意字符 |
\w | 匹配字母、数字、下划线或汉字 |
\W | 匹配除字母、数字、下划线或汉字以外的字母 |
\s | 匹配单个的空白字符(包括Tab键和换行符) |
\S | 除单个的空白字符(包括Tab键和换行符)以外的所有字符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结尾(单词的分解符通常是空格、标点符号或换行符) |
限定符
如果想要匹配特定数量的数字,正则表达式为我们提供了限定符(指定数量的字符)来实现该功能
总结未完待补充…
以上是内存溢出为你收集整理的Python 从入门到项目实践学习笔记(二)全部内容,希望文章能够帮你解决Python 从入门到项目实践学习笔记(二)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)