20201224-2 字串常用操作
阿新 • • 發佈:2020-12-24
1-1 name = "alex" print(name.capitalize()) # 所有有下劃線的 比如 __ge__ 我們不用管,它們是內部的,是我們不能用的
1-2 name = "my name is alex" print(name.count("a"))
1-3 name = "my name is alex" print(name.center(50,"-"))
1-4 encode 在Python3 中 將一個字串 轉換成 二進位制 name = "my name is alex" print(name.encode(self,encoding,errors))
1-5 # endswith 以……結尾 判斷字串 以什麼結尾,一致則返回 True name = "my name is alex" print(name.endswith("ex")) # 比如想看一個郵件,是不是以 .com 結尾
1-6 name = "my \tname is alex" print(name.expandtabs(tabsize=30)) -→ my name is alex
1-7 name = "my name is alex" print(name.find("y")) -→ 1 # 取出找到的對應字元的索引name = "my \tname is alex" print(name.find("name")) -→ 4 為什麼返回 4 ? 因為字串 也可以切片 print(name[name.find("name"):9]) -→ name print(name[name.find("name"):]) --> name is alex 字串也可以切片,用法和列表是一樣的
1-8 format 格式化 name = "my name is {name} and i am {year} old" print(name.format(name='alex',year=23)) --> my name isalex and i am 23 old
1-9 format_map format_map 中的內容為一個字典 name = "my name is {name} and i am {year} old" print(name.format_map({'name':'alex','year':12})) 這是一個字典,這種語法比較少用,知道 format 即可 --> my name is alex and i am 12 old
1-10 isalnum 判斷是不是阿拉伯數字 name = "my name is alex" print(name.isalnum()) --> False print('ab23'.isalnum()) --> True 包含數字和英文可以,有特殊字元不行
1-11 isalpha 純英文字元 print('ab23'.isalpha()) --> False print('abK'.isalpha()) --> True
1-12 isdecimal 是否為十進位制 print('12222'.isdecimal()) 1-13 isdigit 是否為整數 1-14 isidentifier 識別符號 print('1A'.isidentifier()) # 判斷是不是一個合法的識別符號,其實就是相當於判斷是不是一個合法的變數名 --> False print('a1A'.isidentifier()) --> True print('a1A星軌'.isidentifier()) --> True # 中文也可以當變數名,只是千萬別這麼幹
1-15 isnumeric 判斷是否為數字,雖然可以用 isdigit;不知道這個存在的目的是什麼,忘記它吧 print('33'.isnumeric()) print('33.33'.isnumeric()) 1-16 isspace() 判斷是否為空格 1-17 istitle() 判斷每個字母是否為大寫 print('My name is '.istitle()) --> False print('My Name Is '.istitle()) --> True 1-18 isprintable() 判斷是否可以列印的 Linux 上的 tty drive file 檔案是不能列印的,就會返回 False 用途較少 1-19 isupper 大寫
1-20 join print('My Name Is '.join("=="))? join的玩法 print('+'.join(['1','2','3'])) --> 1+2+3 python3 中 不支援數字,只能通過字串連線 1-21 ljust() 有兩個引數,一個是長度,一個是,, name = "my name is {name} and i am {year} old" print(name.ljust(50,'*')) --> my name is {name} and i am {year} old************* 長度 50;如果不夠,用 * 補上 1-22 rjust() 剛好相反 name = "my name is {name} and i am {year} old" print(name.rjust(50,'-')) --> -------------my name is {name} and i am {year} old 1-23 lower() 大寫變小寫 upper() 小寫變大寫 print('Alex'.lower()) --> alex print('Alex'.upper()) --> ALEX 1-24 lstrip() 預設去掉兩邊的空格和回車 lstrip 就是從左邊去掉空格和回車 print('Alex\n'.lstrip()) print('----') \n 表示換行 print('\nAlex'.lstrip()) print('----') 1-25 rstrip 去掉右邊的空格和回車,用法同上 1-26 strip 就是去掉兩邊的,全部都去掉
1-27 maketrans() p = str.maketrans("abcdef",'123456') print("alex li".translate(p)) --> 1l5x li 是對應的功能,類似於翻譯對應的感覺;加密的密碼可以這樣玩 必須保證資料一樣多 1-28 replace() 替換 >>> print('alex li'.replace('l','L',1)) aLex li 只替換了一個,因為後面數字為 1 1-29 rfind() 從左往右,找到最右邊,最後面值的下標並返回 In [1]: print('alex li'.rfind('l')) 5 In [2]: print('alex lil'.rfind('l')) 7
1-30 split() 把字串按空格分出列表 >>> print('al ex lil'.split(' ')) 按空格分 ['al', 'ex', 'lil'] >>> print('al ex lil'.split('l')) 按字母 “l” 分 ['a', ' ex ', 'i', ''] l 沒了,因為 l 被當成 分隔符了 如何用呢?比如有一段字元,只想提取數字 >>> print('1+2+3+4'.split('+')) ['1', '2', '3', '4'] 1-31 splitlines() 如果遇到換行,按換行符分,可以自動識別不同系統的換行 >>> print('1+2\n+3+4'.splitlines()) ['1+2', '+3+4'] 與 >>> print('1+2\n+3+4'.split('\n')) ['1+2', '+3+4'] 是完全一樣的效果 1-32 swapcase() 交換大小寫 >>> print('Alex Li'.swapcase()) aLEX lI 1-33 title() >>> print('lex Li'.title()) Lex Li 1-34 zfill() 可以用於補位 >>> print('lex li'.zfill(50)) 00000000000000000000000000000000000000000000lex li