1. 程式人生 > >Python3中字串操作詳解 字串操作方法大全

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

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