標籤:style 單詞 sub rip 預設 git split 沒有 orm
本文內容包括三個部分,第一部分簡單介紹python中基礎資料型別 (Elementary Data Type),第二部分討論數位常見處理方法,第三部份討論字串的常見處理方法
一.python基礎資料型別 (Elementary Data Type) python中基礎資料型別 (Elementary Data Type)包括數字(int),字串(str),列表(list),元組(tuple),字典(dict)。在python中需要注意一點就是對於數字來說,不像其他語言有int和double之分,所有的數字都統稱為int.在python中有許多內建的方法來處理這些基本的資料類型。本文和後續幾篇文章將陸續總結出python3中的這些內建方法。本文剩下的部分主要討論數字和字串的內建方法。
二.數字(int)的處理方法
1.int()函數:
1 a=‘123‘2 b=int(a)
int()函數可以將字串轉化為數字,對字串的要求是字串全部由數字組成。
2.bit_length():
1 a=1232 b=a.bit_length()3 print(b)
該函數表示用二進位來表示該資料至少需要幾位位元。
三.字串的處理方法:
1.capitalize():
s=‘hello‘s.capitalize()
capitalize()函數作用是將字串的第一個字母變成大寫,其他字母全部小寫 (注意是字串的第一個字母,不是單詞的第一個字母)
2,casefold()和lower():
s=‘HsewaaAS‘s.casefold()s.lower()
這兩個函數都是將字串全部變為小寫,兩個函數不同之處在於,lower只能用於把英文字母全部轉化為小寫,而cassfold則還可以把其他語言(如法語)的字母全部轉為小寫。
3.center(width,fillchar=None):
1 s=‘hello‘2 s1=s.center(30)3 s2=s.center(30,‘*‘)
center函數的作用是指定字串的寬度,並將字串置中。該函數有兩個參數第一個width表示字串的寬度,第二個參數是一個預設參數,用來指定該字串剩下的位置用什麼符號來填充,預設是用空格填充。
上面找這段代碼的執行效果如下:
4.ljust(width,str=‘ ‘)和rjust(width,str=‘ ‘):
s=‘hello‘s1=s.ljust(20,‘*‘)s2=s.rjust(20,‘*‘)print(s1)print(s2)
這兩個函數和ceter函數類似,ljust表示將字串變為指定寬度,其中字串居左,剩下的位置用指定符號填充,預設用空格,rjust表示將字串變為指定寬度,其中字串居右,其他位置用指定輸入鍵台,預設為空白格。
5.count(sub,start=None,end=None):
1 s=‘hello nihaoya‘2 s1=s.count(‘h‘)3 s2=s.count(‘h‘,6,10)4 print(s1)5 print(s2)
該Function Compute指定字串在目標字串中出現的次數,相當於求子序列在原序列中出現的次數。count有三個參數,第一個參數用來指定需要求次數的子序列,第二個和第三個參數是預設參數,用來指定原字串序列的開始結束位置。也就是說,既可以在整個字串中尋找子序列出現的次數,也可以計算字串中指定序列中子序列出現的次數。
6.endswith(sub,start=None,end=None),startswith(sub,start=None,end=None):
1 s=‘hello nihaoya‘2 s1=s.endswith(‘ya‘)3 s2=s.startswith(‘h‘)4 print(s1)5 print(s2)
這兩個函數用來判斷字串是否以指定的子序列結尾和開始。這兩個函數都有三個參數,第一個參數用來指定子序列,第二個和第三個參數是預設參數,用來指定原字串序列的開始結束位置。如果是以指定序列結尾或開始,則返回True,否則返回False。
7.expandtabs(width):
s="hell\tdhehde\ndhienwden\tndiwen\n"s1=s.expandtabs(20)print(s1)
代碼執行效果:
該函數的作用是將每一個tab鍵之前的字串擴充到指定的寬度.該函數可以讓字串像表格那樣輸出.
8.find(sub,start=None,end=None),index(sub,start=None,end=None):
s="hell\tdhehde\ndhienwden\tndiwen\n"s1=s.find(‘de‘)print(s1)
find函數尋找指定子序列在目標序列中第一次出現的位置,若目標序列中沒有該子序列,返回-1。該函數第一個參數是需要尋找的子序列,第二個和第三個參數是預設參數,用來指定原序列的起止位置。index函數與find函數用法功能一致,但是與find函數沒有找到子序列返回-1不同,若index沒有找到子序列,會直接報錯。因此不建議使用該函數。
9.format(),format_map():
s=‘your {name},age{age}‘s1=s.format(name=‘ahah‘,age=19)print(s1)
format()函數是將字串中預留位置的內容格式化。在字串中,用{key}表示預留位置,通過foramt函數可以將佔位符中內容格式化為指定內容。foramt_map()函數功能與format函數相同,只是format_map函數可以傳入一個字典。而format則不能。
10.isalnum(),
s=‘123dsds‘print(s.isalnum())
該函數用來判斷字串中是否只包含字母(中文)和數字,如果是,返回True,否則返回False
11.isalpha():
該函數用來判斷字串中是否只包含字母(中文),如果是,返回True,否則返回False
12.isdecimal(),isdigit(),isnumeric():
這三個函數都是用來判斷輸入的字串是否只包含數字,但是三個函數的驗證範圍不一致,isdecimal()函數只能判斷是否是普通數字(自然數),isdigit()函數可以除了可以驗證自然數,還可以驗證一些特殊的數字,比如②這樣的數字。isnumeric()則還可以驗證如二這樣的漢字。
13.isprintable():
s=‘123\tsdsds‘print(s.isprintable())
該函數判斷字串中的字元能否全部列印出來,即字串中是否存在諸如\t,\n等特殊字元。如果存在,則表示該字串不能將其全部列印出來,函數將返回False,如果字串中字元全部都能列印出來,則返回True.
14.isspace():
該函數判斷給的的字串是否全是空格,如果是,則返回true,否則返回False
15.istitle(),tltle():
istitle()判斷給定的字串是否是標題,即每一個單詞的首字母是否是大寫,如果是,返回true,否則返回false.tilte()函數則是將字串轉化為標題格式。
16.join(s):
s=‘hello world‘s1=‘_‘.join(s)print(s1)
代碼執行結果:
join函數可以以指定的字元插入到字串中,以此來分隔字串。
17.islower(),lower,isupper(),upper():
這幾個函數用來判斷字串是否全是大小寫以及把字串全部轉為大小寫。
18.strip(st=None),lstrip(st=Node),rstrip(st=None)
s=‘xa‘s.strip(‘91exxe‘)s.lstrip(‘91exxe‘)s.rstrip(‘91exxe‘)
這幾個函數都是去掉字串中指定的字元,其中strip是既可以從左邊匹配,也可以從右邊匹配,lstrip從左邊匹配,rstrip從右邊開始匹配。函數可以設定參數,用來指定匹配的字元序列,預設是去掉空格(包括\t\n).
19.maketrans(str1,str2),translate(str):
1 m=str.maketrans("aeiou","12345")2 v="axbduewbidbw9triuebcqyeeqicbwq"3 new_v=v.translate(m)4 print(new_v)
naketrans(str1,str2)用來建立字串之間的對應關係,該函數一般與translate(str)函數配合使用。translate(str)函數的參數就是maketrans(str1,str2)函數所建立的對應關係,在translate函數中,會使用該對應關係進行轉換,即在字串中出現了str1中的字元,那麼通過translate函數將會轉化成str2中的對應的字元。需要注意,str1和str2的長度必須一致才能轉化。
20.partition(str),rpartition(str)
1 s=‘testadsddfg‘2 v=s.partition(‘s‘)3 print(v)4 s1=s.rpartition(‘s‘)5 print(s1)
代碼效果:
這兩個函數會把字串分成三部分,分隔方式是根據str來分隔partition(str)會從字串的第一個位置開始找字元str,如果找到了第一個字元str,則以該字元作為分隔點,字元前面的內容作為第一部分,str作為第二部門,後面的內容作為第三部分,rpartition則是從字串的最後一個位置開始向前找,找到第一個字元str,然後跟據str作為分隔字元,將字串分為3部分。如果遍曆字串都沒有字元str,自函數返回的三部分包括字串本身和兩個空格。
21.split(str ,int),rsplit(str,int)
s=‘testadsddfg‘v=s.split(‘s‘,2)print(v)
該函數是指定分隔次數。partition函數會找到第一個出現str字元就停止,但是split會根據int值在字串中搜尋出Int個str,再根據這些str將字串分隔,如果整個字串的str出現的次數少於int則按照str出現的最大次數進行分隔。同理,rsplit()是從字串的末尾向前搜尋。
22.splitlines(bool)
1 v1=s.splitlines(False)2 v2=s.splitlines(True)3 print(v1)4 print(v2)
代碼執行結果:
根據\n來分隔字串,若參數為False,則去掉\n,若參數是True,則保留\n.
23.swapcase():
1 s=‘Hello‘2 s1=s.swapcase()3 print(s1)
該函數用來轉換字串的大小寫,將字串中的大寫轉為小寫,小寫轉為大寫。
24.isidentifier():
s=‘def‘s1=s.isidentifier()print(s1)
判斷字串是否符合變數命名規則或者字串是否是python關鍵字。如果符合命名規則或者是關鍵字,則返回true,否則返回False。
25.replace(str1,str2,int=Node):
1 s="alexalexalexalex"2 s1=s.replace(‘ex‘,‘bbb‘)3 s2=s.replace(‘ex‘,‘bbb‘,2)4 print(s1)5 print(s2)
該函數用str2替換字串中的str1序列,預設是替換掉所有的str1序列,但可以通過增加參數來指定替換的次數。
python基礎之python基礎資料型別 (Elementary Data Type)