字符串的操做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 >>>