python的基本資料型別
1.數字 int
2.字串 str
3.布林型 bool
4.列表 list
5.元組 tuple
6.字典 dict
一個一個來看,分別梳理各自的方法。
一、數字 int
1.bit_length -- 得到指定數值的二進位制的長度
a=10
print(a.bit_length)
輸出:4
因為a=10,而10的二進位制數是1010,剛好是4位,所以a.bit_length是4
2.conjugate(self, *args, **kwargs) --獲取共軛複數
a = 3 + 4j
b = a.conjugate()
print(b)
輸出:3-4j
3.from_bytes(cls, bytes, byteorder, *args, **kwargs) --將位元組資料轉化為整數,括號裡帶星號的可以省略。 (這個要特別注意,我沒理解什麼意思)
a= b'\x00\n'
b=int.from_bytes(a,byteorder='big')
print(b)
輸出:10
4.to_bytes(self, length, byteorder, *args, **kwargs) --把int型別轉bytes
a=10
b=a.to_bytes(2,byteorder='big')
print(b)
輸出:b'\x00\n'
二、字串
-
capitalize()
--把字串中的首字母大寫,其他字母全部變成小寫
a = 'woRld'
b = a.capitalize()
print(b)
輸出:World -
casefold()
--把字串中的所有字元變成小寫
a = 'WorLd'
b = a.casefold()
print(b)
輸出:world -
center(width, fillchar=None)
--把字串放在中間,總長度是width,fillchar預設為None
a = 'world'
b = a.center(15,'*')
print(b)
輸出:world -
count(sub, start=None, end=None)
--用於統計字串裡某個字元或子字串出現的次數。
sub -- 搜尋的子字串
start -- 字串開始搜尋的位置。預設為第一個字元,第一個字元索引值為0。
end -- 字串中結束搜尋的位置。字元中第一個字元的索引為 0。預設為字串的最後一個位置。
a = 'tested'
b = a.count('e',0,5)
print(b)
輸出:2
-
encode(encoding='utf-8', errors='strict')
--以 encoding 指定的編碼格式編碼字串。errors引數可以指定不同的錯誤處理方案。
a = 'world'
b = a.encode('utf-8','strict')
print(b)
輸出:b'world' -
endswith(suffix, start=None, end=None)
--判斷字串是否以某個字元結尾,返回bool型
a = 'world'
b = a.endswith('d')
c = a.endswith('d',1,5)
d = a.endswith('l')
print(b)
print(c)
print(d)
輸出:True
True
False -
expandtabs(tabsize=8)
---對字串每8位做一次分割,之後的用空格補全。如tabsize=8,字串是abcde\tdljaljlx\tg,則第一個\t是3個空格,第二個\t是8個空格。
test = 'abcde\tdljaljlx\tg'
v = test.expandtabs(8)
print(v)
輸出:abcde dljaljlx g -
find(sub, start=None, end=None) ***平時用這個
--獲取字串中某個字元所在的索引值
a = 'world'
b = a.find('d')
print(b)
輸出:4 -
index(sub, start=None, end=None) ***一般不用這個,以後也不要用它。
--獲取字串中某個字元所在的索引值
a = 'hello'
b = a.index('e')
print(b)
輸出:1 -
format(self, *args, **kwargs)
--格式化輸出
a = 'hello'
b = 'world'
print("你好的英文是{},世界的英文是{}".format(a,b))
輸出:你好的英文是hello,世界的英文是world
a = 'i am {name},age is {age}'
v = a.format(name='jack',age=10)
print(v)
輸出:i am jack,age is 10
a = 'i am {0},age is {1}'
v = a.format('jack',10)
print(v)
輸出:i am jack,age is 10
-
format_map(self, mapping)
--用10一樣是格式化輸出,區別就是這裡用字典做對應關係。
a = 'i am {name},age is {age}'
v = a.format_map({'name':'jack','age':10})
print(v)
輸出:i am jack,age is 10 -
isalnum()
--檢測字串是否由字母或數字組成
a1 = 'hello'
a2 = 'hello123'
a3 = 'he_llo123'
a4 = '1234'
b = a1.isalnum()
c = a2.isalnum()
d = a3.isalnum()
e = a4.isalnum()
print(b)
print(c)
print(d)
print(e)
輸出:
True
True
False
True -
isalpha()
--檢測字串中是否只包含字母
a1 = 'hello'
a2 = 'hello123'
a3 = 'he_llo123'
b = a1.isalpha()
c = a2.isalpha()
d = a3.isalpha()
print(b)
print(c)
print(d)
輸出:
True
False
False -
isdecimal() ***寫程式用的最多的是這個
--檢測字串中是否只包含十進位制數字
str1 = '123456'
str2 = 'abcd1234'
str3 = '②'
a = str1.isdecimal()
b = str2.isdecimal()
c = str.isdecimal()
print(a)
print(b)
print(c)
輸出:
True
False
False -
isdigit()
--判斷字串中是否僅含有數字
str1 = '123456'
str2 = 'abcd1234'
str3 = '②'
a = str1.isdigit()
b = str2.isdigit()
c = str3.isdigit()
print(a)
print(b)
print(c)
輸出:
True
False
True -
isnumeric()
--判斷字串中是否僅含有數字
test1 = '②'
test2 = '1234'
test3 = 'abcd1234'
v1 = test1.isnumeric()
v2 = test2.isnumeric()
v3 = test3.isnumeric()
print(v1)
print(v2)
print(v3)
輸出:
True
True
False -
isidentifier()
--檢測字串是否為python的有效的識別符號(變數)
*識別符號只能由下劃線或字母開始,不能是數字
*識別符號不能含有除了下劃線之外的其他特殊字元
str1 = 'a123'
str2 = '1a23'
str3 = '_123'
print(str1.isidentifier())
print(str2.isidentifier())
print(str3.isidentifier())
輸出:
True
False
True -
islower()
--檢測字串中包含的字母全部是小寫字母
str1 = 'a123'
str2 = 'Aa23'
str3 = 'abc'
print(str1.islower())
print(str2.islower())
print(str3.islower())
輸出:
True
False
True -
isprintable()
--判斷字串中是否為可列印的字元
test1 = ' '
test2 = 'hello '
test3 = 'hello\tworld'
v1 = test1.isprintable()
v2 = test2.isprintable()
v3 = test3.isprintable()
print(v1)
print(v2)
print(v3)
輸出:
True
True
False -
isspace()
--判斷字串是否只包含空格包括\n \t
test1 = 'hello world'
test2 = ' '
test3 = '\n'
v1 = test1.isspace()
v2 = test2.isspace()
v3 = test3.isspace()
print(v1,v2,v3)
輸出:False True True -
istitle()
--判斷字串是否為標題,標題的特定就是字串中包含的所有的英文單詞全部都是大寫字母開頭,且只能是首字母大寫。
test1 = 'HEllo World'
test2 = 'Hello World'
test3 = 'Hello 你好 World'
v1 = test1.istitle()
v2 = test2.istitle()
v3 = test3.istitle()
print(v1,v2,v3)
輸出:False True True -
isupper()
--判斷字串中的字母是否全部都是大寫
test1 = 'hello world'
test2 = 'HELLO WORLD'
test3 = 'HELLO 你好 WORLD'
v1 = test1.isupper()
v2 = test2.isupper()
v3 = test3.isupper()
print(v1,v2,v3)
輸出:False True True -
join(iterable) ***非常重要
--把字串中的每一個字元用特定的符號連線起來,包括空格。
test = 'hello世界'
a = '_'
v = a.join(test)
print(v)
輸出:h_e_l_l_o_世_界 -
ljust(width, fillchar=None)
rjust(width, fillchar=None)
--ljust是字串左對齊,然後右邊補齊width的長度。rjust是字串右對齊,然後左邊補齊width的長度。
test = 'hello世界'
v1 = test.ljust(10)
v2 = test.rjust(10)
print(v1)
print(v2)
輸出:
hello世界
hello世界 -
lower()
--把字串中所有的英文字元都變成小寫
test = 'HELLo'
v = test.lower()
print(v)
輸出:hello -
lstrip(chars=None) --刪除字串左邊的字元
rstrip(chars=None) --刪除字串右邊的字元
strip(chars=None) --刪除字串兩邊的字元
--舉例如下:
test1 = ' hello '
test2 = 'hello'
v1 = test1.lstrip()
v2 = test2.lstrip('h')
v3 = test1.rstrip()
v4 = test2.rstrip('o')
v5 = test1.strip()
print(v1)
print(v2)
print(v3)
print(v4)
print(v5)
輸出:
hello
ello
hello
hell
hello
-
maketrans(*args, **kwargs)
--用於字串轉換然後生成新的字串
test1 = 'abcdefg'
v = test1.maketrans('cd','mn')
result = test1.translate(v)
print(result)
輸出:abmnefg -
partition(sep)
--根據指定的分隔符從左邊開始查詢將字串進行分割
test = 'abcdcefg'
v = test.partition('c')
print(v)
輸出:
('ab', 'c', 'dcefg') -
rpartition(sep)
--根據指定的分隔符從右邊邊開始查詢將字串進行分割
test = 'abcdcefg'
v = test.rpartition('c')
print(v)
輸出:
('abcd', 'c', 'efg') -
replace(old, new, count=None)
--替換字串中的字元
test = 'abcdcefg'
v1 = test.replace('c','m')
v2 = test.replace('c','m',1)
v3 = test.replace('c','m',3)
print(v1)
print(v2)
print(v3)
輸出:
abmdmefg
abmdcefg
abmdmefg -
rfind(sub, start=None, end=None)
---從右邊開始數,找到字串中某個字元的索引值
test = 'abcdecfg'
v = test.rfind('c')
print(v)
輸出:5 -
split(sep=None, maxsplit=-1)
--分割字串,以某個字元進行分割,但不包含該字元
test = 'abcdecfg'
v1 = test.split()
v2 = test.split('c')
print(v1)
print(v2)
輸出:
['abcdecfg']
['ab', 'de', 'fg'] -
rsplit(sep=None, maxsplit=-1)
--同split一樣,只不過split如果加了maxsplit引數,表示從左邊開始查詢,限定可分割次數。rsplit則表示從右邊開始查詢
test = 'abcdecfcgdagag'
v = test.rsplit('c',2)
print(v)
輸出:['abcde', 'f', 'gdagag'] -
splitlines(keepends=None)
--按照行('\r', '\r\n', \n')分隔,返回一個包含各行作為元素的列表,如果引數 keepends 為 False,不包含換行符,如果為 True,則保留換行符,預設是False.
test = 'abcdecfc\ngdagag'
v1 = test.splitlines()
v2 = test.splitlines(True)
print(v1)
print(v2)
輸出:
['abcdecfc', 'gdagag']
['abcdecfc\n', 'gdagag'] -
startswith(prefix, start=None, end=None)
--判斷字串是否已某個字元開頭
test = 'abcdecfcgdagag'
v1 = test.startswith('d',3,-1)
v2 = test.startswith('a')
v3 = test.startswith('c')
print(v1)
print(v2)
print(v3)
輸出:
True
True
False -
swapcase()
--對字串中大小寫字母進行轉換
test = 'AbCd'
v = test.swapcase()
print(v)
輸出:aBcD -
title()
--把字串轉換為標題,其實就是字串中的每個單詞首字母大寫
test = 'hello world'
v = test.title()
print(v)
輸出:Hello World -
translate(table)
????? -
upper()
--字串中所有字母大寫
test = 'hello world'
v = test.upper()
print(v)
輸出:HELLO WORLD -
zfill(width)
--填充字串,只能以0填充,沒什麼實際用途。
test = 'hello'
v = test.zfill(10)
print(v)
輸出:00000hello