字符串(string)操作(自带方法)
注意:字符串的所有方法都有返回值,不会更改原字符串(字符串本身也是不可变对象)。
说明:以下s表示字符串本身或字符串变量。
1.字母大小写转换
s.upper():所有字母大写;
s.lower():所有字母小写;
s.capitalize():第1个字母大写,其他都小写;
s.title():所有单词首字母大写,其他都小写;
s.swapcase():小写字母大写,大写字母小写;
注意:这些方法都返回新的字符串,不改变原字符串。
2.is判断
以“is”开头的是判断方法,根据结果返回True或False。
s.isalnum():判断字符串是否只含有数字与字母;
s.isalpha():判断字符串是否全为字母;
s.isascii():判断字符串是否全为ASCII字符;
s.isidentifier():判断字符串是否符合命名规则;
s.islower():判断字符串是否全为小写;
s.isupper():判断字符串是否全为大写;
s.isprintable():判断字符串是否全为可打印字符(空格属于可打印,换行符、制表符都不属于可打印);
** s.isspace()**:判断字符串是否只含有空白符(空格、换行、制表符);
s.istitle():判断字符串是否所有单词首字母大写,其他字母小写;
s.isdecimal():返回True: Unicode数字,全角数字(双字节);返回False: 罗马数字,汉字数字;返回Error: byte数字(单字节);
s.isdigit():返回True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字;返回False: 汉字数字; 返回后Error: 无;
s.isnumeric():返回True: Unicode数字,全角数字(双字节),罗马数字,汉字数字;返回False: 无;返回Error: byte数字(单字节);
3.字符串填充
s.center((width[, fillchar])):以s为中心,两边填充字符串fillchar,直到新字符串长度为width,默认用空格填充;
s.ljust((width[, fillchar])):功能同上,只是填充左边;
s.rjust((width[, fillchar])):功能同上,只是填充右边;
s.zfill(width):字符串左边添0到指定长度width;
4.字符串搜索
s.count(seq[, start[, end]]):统计指定区段出现seq子串的次数;
s.startswith(seq[, start[, end]]):判断指定区段是否以seq子串开头;
s.endswith(seq[, start[, end]]):判断指定区段是否以seq子串结尾;
s.find(seq[, start[, end]]) :从左往右找到第一个子字串seq的位置序号,若无返回-1;
s.rfind(seq[, start[, end]]):从右往左找到第一个子字串seq的位置序号,若无则为-1;
s.index(seq[, start[, end]]): 从左往右找到第一个子字串seq的位置序号,若无则报错;
s.rindex(seq[, start[, end]]):从右往左找到第一个子字串seq的位置序号,若无则报错;
注意:位置序号start和end可以省略,省略时,搜索整个字符串;
5.字符串替换
s.replace(old, new[, count]):将old子串用new子串替换,count指定从左往右最多有几个old被替换;
s.expandtabs(tabsize):将字符串中的“\t” 替换为一定数量的空格;
6.字符串分割
s.split(seq, maxsplit):以seq子串作为标记从左到右分割字符串,seq省略,则以空格作为分隔标记;maxsplit为最大分割次数,省略或-1或none,将会从左到右每一个sep切割一次(seq不会出现在结果中),返回一个由子序列组成的list;
s.rsplit(seq, maxsplit):功能同上,只是从右到左分割;
s.partition(seq):将字符串以子串seq为中心分成3部分,并以元组形式返回,即(左边部分, seq, 右边部分),注意是从左往右找到第一个seq并分割,如果原字符串不含seq,则返回(s,'','');
s.rpartition(seq):将字符串以子串seq为中心分成3部分,并以元组形式返回,即(左边部分, seq, 右边部分),如果原字符串不含seq,则返回('','',s);
7.字符左右修剪
s.strip(seq):从字符串s首尾开始逐个判断(不能跳跃)每个元素是否也在字符串seq中(注意被判断的当前元素在seq中的顺序是无所谓的),如果是则将该元素从s中删除,直到某个元素不在seq中则停止判断(一边停止判断,不影响另一边继续判断),两边都结束后,返回剩下的字符串。若省略seq,即s.strip()表示移除s首尾的空格、制表符、换行符。
s.lstrip(seq):只对s的左侧执行上述功能;
s.rstrip(seq):只对s的右侧执行上述功能;
8.字符串连结
s.join(seq):将可迭代序列seq的每一个元素以字符串s作为间隔连在一起,形成一个更大的字符串;注意seq可以是字符串、列表、字典、元组、集合,但seq的所有元素都必须是字符型。
a="qwer" #字符串
print("_".join(a))
q_w_e_r
a=['1','2','3'] #字符串
print("_".join(a))
1_2_3
a={'a':1,'b':2,'c':3} #字典
print("@".join(a))
a@b@c
a=("a","b","c","d") #元组
print("".join(a))
abcd
a={"qwe","asd","zxc"} #集合
print(".".join(a))
asd.qwe.zxc
###################################
a=(1,2,3) #元素非字符型,报错
print("%".join(a))
a=('AB',{'a','cd'}) #第二个元素是字典,非字符型,报错
print("%".join(a))