(一):字符串定义
1.1 字符串: 用单引号(’ ‘),双引号(" ")或者三引号(’’’ ‘’’)括起来的数据。
1.2 包裹: 如果字符串中有单撇号而没有双撇号则用双撇号包裹,否则应该用单撇号包裹。
1.3 换行: 多行的长字符串可以用行尾反斜杠 / 续行,续行的行首空白不被忽略。也可以用三重撇号""" “”" 或三个单撇号’’’ ‘’'给特别长的字符串换行。
1.4 输出: python将若干值插入到带有“%”标记的字符串中,实现动态地输出字符串。"%s%s%s" % (str1,str2,str3)
1.5 转义字符: 使用 \ 作为转义字符。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/891a4bd3265b72325789fe5d77e0e42a.png)
(二):字符串方法
2.1 字符串连接和重复:
- +号连接,*号重复
- " %s%s" % (str1,str2)
- " {}{}".format(str1,str2)
- “{0}{1}”.format(str1,str2)
- str.join(interable),配合列表,连接多个字符串
stra = ["I","Love","China"]
result1 = "".join(stra)
result2 = "-".join(stra)
print result
2.2 字符串测试与查找
函数 | 功能 |
---|
str.startswith(prefix[,start[,end]]) | 判断是否以prefix开头(prefix可以为普通字符串,或元组(只要tuple中的一个元素满足条件,则返回true)) |
str.endswith(suffix[,start[,end]]) | 判断是否以suffix结尾(可指定搜索边界) |
>>>print('abcxyz'.endswith('xyz'))
>>>print('abcxyz'.endswith('xyz',4))
>>>print('abcxyz'.endswith('xyz',0,5))
>>>print('abcxyz'.endswith('xyz',0,6))
>>>print('abcxyz'.endswith(('ab','xyz')))
>>>print('abcxyz'.endswith(('ab','xy')))
>>>print('abcxyz'.endswith(('ab','xy','z')))
函数 | 功能 |
---|
str.find(sub[,start[,end]]) | 判断是否包含sub(若包含返回sub的索引值,否则返回 -1) |
str.rfind(sub[,start[,end]]) | (若存在返回最右边的索引值,若字符串只有1或0个sub,则与find()等价) |
str.index(sub[,start[,end]]) | (若不存在sub,则抛出vauleerror异常) |
str.rindex(sub[,start[,end]]) | (返回最右边索引值) |
2.3 字符串类型判断:
函数 | 功能 |
---|
str.isdigit() | 是否仅包含数字(可包含其它一些格式的数字) |
str.isdecimal() | 是否仅包含十进制数字 |
str.isnumeric() | 是否仅包含数值(数值包含数字) |
-------- | ----- |
str.isalnum() | 是否全为字母或数字 |
str.isalpha | 是否全为字母 |
str.islower() | 是否全为小写 |
str.isupper() | 是否全为大写 |
str.istitle() | 是否为标题,即各单词首字母大写 |
-------- | ----- |
str.isspace() | 不为空且仅包含空白字符(空格,制表符,换行符等) |
str.isidentifier() | 是否满足标识符定义规则 |
str.isprintable() | 是否为可打印字符(空格符可打印,但换行符,制表符不可打印) |
2.4 字符串处理函数
函数 | 功能 |
---|
str.upper() | 全部大写 |
str.lower() | 全部小写 |
str.swapcase() | 大小写互换 |
str.capitalize() | 首字母大写,其他小写 |
str.title() | 各单词首字母大写 |
str.casefold() | 转换为大小写无关字符串比较的格式字符串 |
- str.center(width,[,fillchar])——字符串居中,两边用fillchar(默认为空格)填充,是整个字符串长度为width。(若width<字符串长度,则直接返回字符串本身,不会创建新字符串对象)。
- str.ljust(width,[,fillchar])——左对齐,右边填充fillchar,固定长度
- str.rjust(width,[,fillchar])——右对齐,左边填充fillchar,固定长度
- str.zfill(width)——左补0,使字符串长度为width。(若字符串前带有±号,则0填充在±号后,且符号也算入长度)
- str.expandtabs([tabsize])——将制表符扩展为若干个(tabsize默认为8)空格。注:在替换"\t"为空格时,会减掉"\t"前面的字符数量,但它不会替换换行符\n,\r
函数 | 功能 |
---|
str.strip([chars]) | 删除两边的字符chars |
str.lstrip([chars]) | 删除左边的字符chars |
str.rstrip([chars]) | 删除右边的字符chars |
chars可以为单个或多个字符,当chars为空或None,则默认删除空白(空格,制表符,换行符)
函数 | 功能 |
---|
str.replace(old,new[,count]) | 只替换前count个old字符串 |
str.translate(table) | |
str.maketrans(x[,y[,z]]) | |
函数 | 功能 |
---|
str.split(sep=None,maxsplit=-1) | 分割字符串,生成列表 |
str.rsplit(sep=None,maxsplit=-1) | 从右向左搜索 |
str.splitlines([keepends=Ture]) | 分割换行符 |
str.partition(sep) | 从sep处对S进行分割, 最后返回一个包含3元素的元组, sep左边的部分是元组的第一个元素, sep自身是元组的二个元素,sep右边是元组的第三个元素。 |
str.rpartition(sep) | 从右边第一个sep进行分割 |