字符串的操做linux
变量: 变量只能是 字母,数字或下划线的任意组合,但首个字符不能为数字,且不能有空格 如下关键字不能声明为变量: and ,as, assert, break ,class ,continue ,def ,del ,elif ,else ,except exec ,finally ,for, from ,golbal, if ,import ,in ,is ,lamda ,not ,or, pass, print ,raise return, try ,while ,with ,yield
字符串都是可哈希的(不可变),所以字符串的操做都是生成新的字符串,不是修改原始值。可是列表是可变的,所以列表的方法都是直接修改原始值。git
方法按字母索引:api
1. C-Fide
1 >>> name = "my name is gkxxxx" 2 >>> name.capitalize() 3 'My name is gkxxxx' 4 >>> name.casefold() 5 'my name is gkxxxx' 6 >>> #casefold 与lower很像,不过lower只针对ASCII码的字母 7 >>> name.center(10,"-") 8 'my name is gkxxxx' 9 >>> name.center(40,"-") 10 '-----------my name is gkxxxx------------' 11 >>> #输出40个字符,若name不足,用“-”补足,其中name里的空格也算字符数 12 >>> name.endswith("x") # 'gkxpanda'.startswith('x',2,5) ---> 对字符串切片2,5(顾头不顾尾),判断是否以x开头 13 True # 对于判断字符串的开头结尾,能够当作判断 str[0],str[-1],由于字符串也有index 14 >>> name.endswith("aa") 15 False 16 >>> #判断字符串结尾,正确返回true,好比是否以.com结尾,不能为空,会报错。 17 >>> name.expandtabs(tabsize=30) 18 'my name is gkxxxx' 19 >>> #假如name中有“\t”,则把扩大tap的字符数。 ‘g\tkx’若是默认,则是\t往前补8位,好比 此处字母只有1个g,会再补7个空格 20 >>> name.find("name") #找不到返回 -1 21 3 22 >>> #找到name的起始位置,Ps:字符串也能够切片,以下: 23 >>> name[name.find("name"):9] 24 'name i' 25 >>> name[name.find("name"):7] 26 'name' 27 >>> name2 = "my name is {name_2}" 28 >>> name2.format(name_2=name) 29 'my name is my name is gkxxxx' 30 >>> #format 格式化输出 31 >>> name2.format_map({'name_2':'gkxxx'}) 32 'my name is gkxxx' 33 >>> #format_map 也是格式化输出,不过用的是字典,不多用就是了
#format >>> name = '1' >>> age = 1 >>> a = '{},{}'.format(name,age) >>> a '1,1'
字符串中有多少大括号,foamat后面就能够跟几个ui
2. i加密
1 >>> name.index('m') 2 0 3 >>> print('ab23'.isalnum) 4 <built-in method isalnum of str object at 0x000001F2A409C228> 5 >>> #包含全部的英文字符和1~9,返回true,若是有特殊字符就返回false 6 >>> name.isalpha() 7 False 8 >>> name_3 = 'abc' 9 >>> name_3.isalpha() 10 True 11 >>> name.isdecimal() 12 False 13 >>> #是不是十进制 14 >>> name.isdigit() 15 False 16 >>> #是不是数字 17 >>> name.isidentifier() #判断是否是一个合法的标识符(变量名) 18 False 19 >>> name_3.isidentifier() 20 True 21 >>> name_3.islower() 22 True 23 >>> #判断是否是小写 24 >>> print('33'.isnumeric()) 25 True 26 >>> #与 .isdigit差很少 27 >>> #带小数返回false 28 >>> name_4 = 'My Name Is Gkxx' 29 >>> name_4.istitle() #判断是否开头都是大写 30 True 31 >>> name_4.isprintable() #若是是字符串不用考虑是否能够打印,相似linux ttyfile drive file不能打印 32 True 33 >>> name_4.isupper() 34 False 35 >>>
3. J~Zspa
1 >>> print('+'.join(['1','2','3','4','5'])) 2 1+2+3+4+5 3 >>> print('+'.join(['1','2','3','4','5'])) #emmmm,如结果所示 4 1+2+3+4+5 5 >>> name.ljust(40,'*') #同center,左边字符串不足位数,自动补位 6 'my name is gkxxxx***********************' 7 >>> name.rjust(40,'-') #同center,ljust 右边字符串不足位数,自动补位 8 '-----------------------my name is gkxxxx' 9 >>> name.lower() #全小写,作验证码登录能够用f 10 'my name is gkxxxx' 11 >>> name.upper() #全大写 12 'MY NAME IS GKXXXX' 13 >>> name_5= ' gkx ' 14 >>> name_5.lstrip() 15 'gkx ' 16 >>> name_5.rstrip() 17 ' gkx' 18 >>> name_5.strip() #'sdgx@sd f#'.strip(' @#') ---> 'sdgx@sd f'只要是位于首尾的特殊字符,空格,数字,直接写在.strip()的参数里,均可以删除,可是中间的就不会删 19 'gkx'
#strip的坑: >>> a = 'aaa****ab' >>> a.strip('ab') >>'****' #用字母去作strip的时候,会去掉全部的字母
20 >>> 21 >>> ser = str.maketrans('abcdefg','1234567') 22 >>> text = 'c is after a' 23 >>> text.translate(ser) 24 '3 is 16t5r 1' 25 >>> # maketrans能够设置一一对应的字符,translate能够翻译maketrans,从而达到加密效果 26 >>> 27 >>> name_6 = 'my name is gkx' 28 >>> name_6.partition(" ") 29 ('my', ' ', 'name is gkx') 30 >>> #根据字符串已有的分隔符,把字符串分割成tuple 31 >>> 32 >>> name.replace('x','WW') 33 'my name is gkWWWWWWWW' 34 >>> name.replace('m','M',0) 35 'my name is gkxxxx' 36 >>> name.replace('x','WW',1) #不写1则替换全部的X为WW,写了就只替换第一处x 37 'my name is gkWWxxx' 38 >>> #对字符串的值进行替换,最后一个数字表示,想替换的个数 39 >>> 40 >>> name.rfind('y') #同find,不过find默认找到最左边的值的index,rfind默认找到最右边的值的index 41 1 42 >>> 43 >>> name.split(' ') #根据字符串已有的分隔符,把字符串分割成列表,此处分隔符为空格 44 ['my', 'name', 'is', 'gkxxxx']
"aa_bb_cc".rsplit('_',1) #从右边开始分割,只分割一次
>>> ['aa_bb','cc']
45 >>> name_7 = '1+2\n+3' 46 >>> name_7.splitlines() 47 ['1+2', '+3'] 48 >>> #同split ,默认是用\n换行符,分割 49 >>> 50 >>> name_8 = 'MY name IS gkx' 51 >>> name_8.swapcase() #转换大小写 52 'my NAME is GKX' 53 >>> name_8.title() #首字母大写,每一个隔开的(空格,特殊字符,数字)单词首字母大写 54 'My Name Is Gkx' 55 >>> name_8.zfill(50) #自动用0补位 56 '000000000000000000000000000000000000MY name IS gkx' 57 >>>