一、數字類型python
整型git
api
app
二進制轉十進制:10 --> 1*(2**1) + 0*(2**0) 2spa
八進制轉十進制: 235 --> 2*(8**2) + 3*(8**1) + 5*(8**0)code
十六進制轉十進制:217 --> 2*(16**2) + 1*(16**1) + 7*(16**0)orm
int能夠能夠傳一個參數,表示的是第一個參數究竟是什麼類型的,而後轉成十進制的。blog
十進制轉二進制: print(bin(12)) --> 0b1100 0b表示後面的數字是二進制數索引
十進制轉八進制: print(oct(12)) --> 0o14 0o表示後面的數字是八進制數 14 >>> 1*(8**1) + 4*(8**0))ip
十進制轉十六進制: print(hex(12)) --> 0xc 0x表示後面的數字是十六進制數
總結:
存一個值、不可變(可變:只改變的狀況下,id不變,說明你改的是原值 不可變:只改變的狀況下id必定變)、有序:但凡是有索引的數據都是有序的
浮點型
用途:薪資、身高、體重
二、字符類型及內置方法
用途:描述性
定義方式:單引號、雙引號、三引號 --> s = 'hello baby' # str('hello baby')
經常使用操做及內置方法:
一、按索引取值(正向取+反向取) :只能取
# s = 'hello big baby~'
# print(s[0])
二、切片(顧頭不顧尾,步長):從一個大的字符串中截取一段新的小字符串
左邊的固定就是頭,右邊固定就是位 沒有說按數字來分頭尾
s = 'hello world i am a baby'
print(s[0:5]) # hello print(s[0:10:1]) # hello 步長不寫默認是1 print(s[0:10:2]) # 步長表示隔幾個取一個 #瞭解負數取值 print(s[-1]) print(s[0:5:-2]) # 切片取值默認是從左往右的 print(s[5:0:-1]) # 切片取值默認是從左往右的 print(s[-1:-10:-1])
三、長度len:統計的是字符串中字符的個數
s1 = ' ' print(len(s1)) #四、成員運算in和not in: 判斷一個子字符串是否存在於一個大的字符串中 print('wiliam' in 'william is dsb and william is sb') print('g' in 'john is dsb and john is sb') print('john' not in 'john is dsb and john is sb')
五、去掉字符串左右兩邊的字符strip,無論中間的
username = input('>>>:').strip() if username == 'william': print('good job') # strip()默認去除字符串首尾的空格 # 使用內置的方法統一採用 句點符(.) name1 = 'william' name2 = ' william '.strip() print(name1 == name2) name3 = '$$$$$will$iam$$$$' print(name3.strip('$')) # 瞭解便可 name4 = '% ¥#william&*)' print(name4.strip('% ¥#)')) # rstrip() lstrip() name5 = '$$$$william$$$$' print(name5.lstrip('$')) # left左邊 print(name5.rstrip('$')) # right右邊
六、切分split:針對按照某種分隔符組織的字符串,能夠用split將其切分紅列表,進而進行取值
data = 'william n|123| handsome' print(data.split('|')) username,password,info = data.split('|') print(username,password,info) # 強調:split切分出來的數據類型是一個列表 print(data.split('o')) # 切割的順序其實從左往右的 print(data.split('o',1)) # 切割的順序其實從左往右的 print(data.rsplit('o',1)) # 切割的順序其實從左往右的 # 若是不指定那麼split和rsplit效果是同樣
七、循環
for i in data: print(i)
須要掌握的:
二、lower,upper
s = 'WiLL1Iam' res = s.lower() print(res) print(s) print(s.upper()) print(s) # 調用字符串的方法並無改變字符串自己
三、startswith,endswith
s1 = 'john is dsb' print(s1.startswith('e')) # 判斷字符串是否以什麼什麼開頭 print(s1.endswith('n')) # 判斷字符串是否以什麼什麼結尾
四、format的三種玩法(python推薦使用format作格式化輸出)
# 第一種 按位置佔位 跟%s原理一致 str1 = 'my name is {} my age is {}'.format('william',18) str1 = 'my name is {} my age is {}'.format(18,'william',) print(str1) # 第二種 按索引佔位 str1 = 'my {1} name is {0} my {0} age is {0}'.format('william',18) print(str1) # 第三種 指名道姓佔位(關鍵字傳參) str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='wililam',age=18) print(str1)
六、join
data = 'william|123|william' res_list = data.split('|') print(res_list) # res_str = '$'.join(res_list) # 將容器類型中的多個元素經過指定字符拼接成一個字符串 print(res_str) l = ['1','a','b'] res = '|'.join(l) print(res)
七、replace
str = 'john is dsb and john is sb he has a BENZ' res = str.replace('william','john',1) print(res) print(str)
八、isdigit # 判斷字符串中包含的是否爲純數字
while True: age = input('>>>:') if age.isdigit(): age = int(age) if age > 28: print('阿姨好') else: print('你他媽的能不能好好輸')
須要瞭解的內置方法:
一、find,rfind,index,rindex,count
s = 'william is dsb o and william is sb' print(s.find('dsb')) # 返回的是d字符所在的索引值 print(s.find('xxx')) # 找不到的時候不報錯返回的是-1 print(s.find('i',0,3)) # 還能夠經過索引來限制查找範圍 print(s.index('o')) # 返回所傳字符所在的索引值 print(s.index('i',0,3)) # 返回所傳字符所在的索引值 print(s.count('n')) # 統計字符出現的次數
二、center,ljust,rjust,zfill
s9 = 'william' print(s9.center(12,'*')) print(s9.ljust(40,'$')) print(s9.rjust(40,'$')) print(s9.rjust(40,' ')) print(s9.zfill(40))
三、expandtabs
s10 = 'a\tbc' print(s10.expandtabs(100))
四、captalize,swapcase,title
s12 = 'hElLo WoRLD wililam' print(s12.capitalize()) # Hello world 首字母大寫 print(s12.swapcase()) # 大小寫互換 print(s12.title()) # 每一個單詞的首字母大小
#五、is數字系列
num1=b'4' #bytes num2=u'4' #unicode,python3中無需加u就是unicode num3='壹' #中文數字 num4='Ⅳ' #羅馬數字 # ''.isnumeric(): unicode,中文數字,羅馬數字 只要是表示數字都識別 print(num2.isnumeric()) print(num3.isnumeric()) print(num4.isnumeric()) # ''.isdecimal(): unicode 只識別普通的阿拉伯數字 print(num2.isdecimal()) print(num3.isdecimal()) print(num4.isdecimal()) # ''.isdigit() :bytes,unicode 一般狀況下使用isdigit就已經知足需求了 print(num1.isdigit()) print(num2.isdigit()) print(num3.isdigit()) print(num4.isdigit())
總結:
只能存一個值、有序(但凡是有索引的數據都是有序的)、不可變類型
三、列表類型及內置方法
定義:[]內能夠有多個任意類型的值,逗號分隔
l1=list({'name':'jason','password':'123'})
print(l1)
list內部原理就是for循環取值 而後一個個塞到列表中去
經常使用操做:
一、按索引存取值(正向存取+反向存取):便可存也能夠取
l = [1,2,3,4] print(l[0:4:1]) print(l[0::]) print(l[5::-1]) print(id(l)) l[0] = 69 print(id(l)) print(l)
二、切片(顧頭不顧尾,步長)
l = [11,22,33,44,55] print(l[0:3])
三、添加
1.尾部添加一個66 l.append(66) # 注意append值能將被添加的數據看成列表的一個元素 print(l) # 2.任意位置添加元素 l.insert(2,96) # 經過索引在任意位置添加元素 print(l) # 注意insert值能將被添加的數據看成列表的一個元素 # 3.添加容器類型數據 l.append(l1) l.insert(-1,l1) l.extend(l1) # 內部原理for循環l1一個個追加到列表的尾部 l.extend([1,]) print(l)
四、刪除
print(l) del l[2] # del適用於全部的刪除操做 print(l) res1 = l.pop() # 尾部彈出 res2 = l.pop() res3 = l.pop() print(res1,res2,res3) res1 = l.pop(0) # 能夠指定索引 按照索引彈出元素 print(res1) res = l.remove(33) # 指定要刪除的元素的值 print(l) print(res) s = 'haha' print(s) del s print(s)
七、循環
for i in l: print(i)