Python3中字符串操作詳解 字符串操作方法大全


  1 #!/usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 #Author:SKING
  4 
  5 #!/usr/bin/env python
  6 # -*- coding:utf-8 -*-
  7 #Author:sking
  8 #Python3字符串操作方法詳解 Python3中字符串操作方法大全
  9 
 10 name = "skings"
 11 
 12 print(name.index('s')) #0 #從左到右查詢某一個字符在這個字符串中第一次出現的下標
 13 print(name.index('s')) #5 #從右到左查詢某一個字符在這個字符串中第一次出現的下標
 14 #print(name.index('xxx')) #ValueError: substring not found
 15 #python 的index方法是在字符串里查找子串第一次出現的位置,類似字符串的find方法,
 16 #不過比find方法更好的是,如果查找不到子串,會拋出異常,而不是返回-1
 17 print(name.capitalize()) #Sking #首字母大寫
 18 print(name.count('s')) #2 #統計字符串中其中的一個字符出現的次數
 19 #統計字符串中其中的一個字符出現的次數,還可以指定在那一段字符中出現的次數
 20 print(name.count('k',1)) #1  指定從下標1(也就是K,包含k)開始,到最后
 21 print(name.casefold())  #skings
 22 #Python casefold() 方法是Python3.3版本之后引入的,其效果和 lower() 方法非常相似,
 23 # 都可以轉換字符串中所有大寫字符為小寫。
 24 # 兩者的區別是:lower() 方法只對ASCII編碼,
 25 # 也就是‘A-Z’有效,對於其他語言(非漢語或英文)中把大寫轉換為小寫的情況只能用 casefold() 方法。
 26 
 27 print(name.encode(encoding='utf-8')) #b'skings' 將字符串轉成bytes類型
 28 print(name.endswith('gs')) #True #判斷一個字符串以什么結尾  比如可以判斷一個郵箱地址是否是以.com結尾
 29 print(name.startswith('sk')) #True #判斷一個字符串以什么結尾  比如可以判斷一個郵箱地址是否是以.com結尾
 30 name = "skings"
 31 name2 = "s\tkings"
 32 # 將制表符\t轉成成30個空格
 33 print(name2.expandtabs(tabsize=30)) #s                             kings
 34 print(name.find('s')) #0 從左到右查找子字符串,若找到返回從0開始的下標值,若找不到返回-1
 35 print(name.rfind('s')) #5 從右到左查找子字符串,若找到返回從0開始的下標值,若找不到返回-1
 36 #利用下標可以切片
 37 print(name[name.find('n'):-1]) #ng
 38 #format 格式化字符串
 39 print('{who} is a {gender}'.format(who='xiaoming', gender='boy')) #xiaoming is a boy
 40 #或者可以這樣寫
 41 a = "{who} is a {gender}"
 42 print(a.format(who="xiaoming", gender="boy")) #xiaoming is a boy
 43 #或者可以用format_map()方法  format_map()方法是用字典的方式寫
 44 print(a.format_map({'who':'xiaoming', 'gender':'boy'}))  # xiaoming is a boy
 45 #判斷字符串是不是阿拉伯字符或數字
 46 print('abc123'.isalnum()) #True
 47 print('abc\123'.isalnum()) #True
 48 print('abc-123'.isalnum()) #False
 49 print('abc\t123'.isalnum()) #False
 50 #判斷字符串是不是純英文字符
 51 print('abc123'.isalpha()) #False
 52 print('abcABC'.isalpha()) #True
 53 print('____________________________')
 54 #判斷字符串是不是十進制的數
 55 print('123'.isdecimal()) ##True
 56 print('123.45'.isdecimal()) #False
 57 print('0X123'.isdecimal()) #False
 58 print('1F'.isdecimal()) #False
 59 print('12H'.isdecimal()) #False
 60 print('____________________________')
 61 #判斷字符串是不是一個正整數
 62 print('123'.isdigit()) ##True
 63 print('-123'.isdigit()) #False
 64 print('123.45'.isdigit()) #False
 65 print('123E10'.isdigit()) #False
 66 print('***************************8')
 67 #判斷字符串是不是一個合法的標識符,也就是 是不是一個合法的變量名
 68 print('haha'.isidentifier()) ##True
 69 print('_haha'.isidentifier()) ##True
 70 print('12haha'.isdigit()) #False  #變量名不能以數字開頭
 71 print('-haha'.isdigit()) #False #變量名不能以-開頭
 72 #判斷字符串是不是全是小寫
 73 print('haha'.islower()) ##True
 74 #判斷字符串是不是全是大寫
 75 print('haha'.isupper()) ##False
 76 #isnumeric()方法
 77 #如果整個 expression 的運算結果為數字,則 isnumeric 返回 True;否則返回 False。
 78  # 如果 expression 是日期表達式,則 isnumeric 返回 False。
 79 print('20180909'.isnumeric()) #True
 80 print('2018-09-09'.isnumeric()) #False
 81 print('2018-9-9'.isnumeric()) #False
 82 print('33.3'.isnumeric()) #False
 83 #注意事項:     使用該函數時候應該注意這樣一些問題:
 84 #  舉例數值:
 85 #  "123"   "123.1"   "123,,,,111.222,,,333"   "123,,,1.22,,,3"   "123e+9"   "123d-8"
 86 #  以上數值返回值的都是 True。
 87 #  第1、2條很正常,第3條有西文的“,”,可以理解,外國人習慣把數字每隔3個加個逗號。
 88 #  第4條中文的“,”也可以,可要注意:cint("12,,3"),可以得到 123;cint("12,,3"),就出錯了。
 89 #    第5、6條,里面有“e”、“d”、“+”、“-”,應該不是數字,但是這里是科學計數法,所以也當做是數字。
 90 
 91 print(' '.isspace()) #True  判斷字符串是不是空格
 92 print('My Name Is Sking') #True 判斷字符串的每個首字母是不是大寫
 93 #將列表中的字符串拼接join
 94 print('*'.join(['1', '2', '3'])) #1*2*3
 95 print('+'.join(['a', 'b', 'c'])) #a+b+c
 96 print('wwww'.ljust(10,'*')) #wwww******   一共打印10個字符,不夠了就用*在最右邊填充
 97 print('wwww'.rjust(10,'*')) #******wwww   一共打印10個字符,不夠了就用*在最左邊填充
 98 print('skings'.center(50, '-')) #----------------------skings----------------------
 99 #一共打印50個字符,不夠的用‘-’填充,並把skings放在中間
100 print('wwww'.zfill(10)) #000000wwww  一共打印10個字符,不夠了就在最前面填充
101 
102 print('ABCd'.lower()) #abcd 將所有大寫字母改為小寫
103 print('abcD'.upper()) #ABCD 將所有小寫字母改為大寫
104 print('abcDEF'.swapcase()) #ABCdef 將所有小寫字母改為大寫,並將所有大寫字母改為小寫
105 print('  \n\tssss\n   '.lstrip()) #ssss 默認刪除最左邊的空白符(包括'\n', '\r',  '\t',  ' ')
106 print('  \nssss\n   '.rstrip()) #ssss 默認刪除最右邊的空白符(包括'\n', '\r',  '\t',  ' ')
107 print('  \nssss\n   '.strip()) #ssss 默認刪除兩頭的空白符(包括'\n', '\r',  '\t',  ' ')
108 
109 #字典翻譯maketrans和translate
110 p = str.maketrans('abcdef', '123456') #意思就是將a用1代替,b用2代替,c用3代替......
111 print('aabbff'.translate(p)) #112266  a用1代替,b用2代替,f用6代替
112 
113 #字符串替換
114 print('skings is has'.replace('s', '*')) #*king* i* ha*
115 #如果只想替換前兩個
116 print('skings is has'.replace('s', '*', 2)) #*king* is has
117 print('skings is has'.split()) #['skings', 'is', 'has']  按照空格將字符串轉成列表
118 print('1+2+3+4'.split('+')) #['1', '2', '3', '4']  按照'+'將字符串轉成列表
119 print('1+2\n3+4'.splitlines()) #['1+2', '3+4']  按照換行符\n或\n\r(linux中的換行符)將字符串轉成列表

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM