创建
- 创建分类 : 单双引号 和 三引号
- 区别
(1)单双引号基本没区别,唯一区别就是,单引号创建时,字符串内部的单引号字符需要用转义字符,双引号同理。
(2)单双引号字符串若分多行写,须在结尾加上续行符 \,若要想包含多行信息,须使用换行符 \n。
(3)三引号可以直接把字符串写成多行的形式。(不需要用\n了,直接分行即可)
(4)三引号中不需要用转义字符来放置引号了。
字符串比较
- 规则
(1)两个字符串从左至右逐个字符比较,相同就继续下一个。
(2)直到遇到第一个不同的字符,则ASCII码大的字符所在字符串更大。
(3)若所有对应字符相同,且长度相同,则两个字符串相同。
(3)若字符相同,长度不同,则长度更长的字符串更大。 - 用法:比较运算符。
字符串切割
-
split方法 : str.split(sep=None,maxsplit = -1)
作用:按指定分割符对字符串进行切割,返回切割结果的列表。
seq参数:由一个或多个字符组成,为None时,表示按空白符(空格、换行、制表符等)进行切割。
maxsplit参数:表示切分次数(从左到右切),最多可以得到maxsplit+1个切分结果,当该参数值为-1(默认)时,表示不限制切割次数。例子:
s = “a#b#c#d”
ls = s.split("#",2)
则ls的值为 [“a”,“b”,“c#d”] -
splitlines 方法 :str.splitlines([keepends])
作用:该方法固定以行结束符(\r \n \r\n)作为分割符对字符串进行切割,返回结果列表。
参数keepends:布尔值,表示是否保留行结束符。默认为False,不保留。
检索和替换
-
检索(子串在字符串中出现的位置)
从左往右:str.find(sub[,start[,end]]) 或 str.index(sub[,start[,end]])
从右往左:str.rfind(sub[,start[,end]]) 或 str.rindex(sub[,start[,end]])
sub参数:子串。
start、end:表示在str[start:end]范围中检索。
其中,find和Index的作用相同,只是当找不到子串时,find返回-1,index报异常。 -
替换 str.replace(old,new[,max])
作用:将str中的old字符串,替换为new字符串,并返回替换后的字符串。
参数max表示最多替换数。
去空格、大小写
-
去掉空格
str.strip() 去除头尾部空格
str.lstrip() 去掉头部空格
str.rstrip() 去掉尾部空格
(如果要去掉字符串中间的空格可以用replace函数,将空格替换为"". -
大小写转换
str.capitalize() 第一个字母大写,其它字母都小写。
str.lower() 所有字母小写。
str.upper() 所以字母大写
str.swapcase() 所有大变小,小变大。
其它常用操作
- 复制:直接用 = 赋值运算符。(字符串是不可变类型,不存在深浅拷贝问题)
- 连接
(1)用+号
(2)join方法
str.join(seq) 表示用str字符串来连接seq序列中的所有元素,函数返回连接后的字符。 - 长度 : len(str)
- 子串判断:检索 或 in关键字
占位符
Format方法
- 形式:str.format(*args,**kwargs)
- 作用:对字符串进行格式“初始化”操作,不会改变str的值,返回格式化的字符串副本。
- 参数:args表示不定长位置参数,kwargs表示不定长关键字参数。
- 例子:
str1 = '{0}的语文成绩为{1},{0}的数学成绩为{2}'#位置参数传参
str2 = '{name}的语文成绩为{yw},{name}的数学成绩为{sx}'
print(str1.format('小明',90,85))
print(str2.format(yw = 90, sx = 85, name = '小明'))
程序运行结果为小明的语文成绩为90,小明的叔学生成绩为85.
- Tip:format初始化中,替换字段可以包含对实参属性的访问。
例子:
str1 = '{0.name}的数学成绩是{0.sx}'
str2 = '{stu.name}的数学成绩是{stu.sx}'
print(str1.format(student))
print(str2.format(stu = student))