1、引子python
一、什麼是數據?git
x=10,10是咱們要存儲的數據app
二、爲什麼數據要分不一樣的類型ide
數據是用來表示狀態的,不一樣的狀態就應該用不一樣的類型的數據去表示學習
三、數據類型的分類this
數字(×××,長×××,浮點型,複數)編碼
字符串 (在介紹字符編碼時介紹字節bytes類型)spa
列表orm
元組blog
字典
集合
4 按照如下幾個點展開數據類型的學習
1)基本使用
(1)用途
(2)定義方式
(3)經常使用操做+內置的方法
2)該類型總結
(1)存一個值or存多個值
只能存一個值
能夠存多個值,值均可以是什麼類型
(2)有序or無序
(3)可變or不可變
!!!可變:值變,id不變。可變==不可hash
!!!不可變:值變,id就變。不可變==可hash
2、數字
一、整型int
做用:年紀,等級,×××號,qq號等整型數字相關
定義:age=10 #本質age=int(10)
二、浮點型float
做用:薪資,身高,體重,體質參數等浮點數相關
定義:alary=3000.3 #本質salary=float(3000.3)
三、二進制,十進制,八進制,十六進制
參考連接:https://blog.51cto.com/10630401/2049374
四、其餘數字類型(瞭解)
1)長××× 在python2中(python3中沒有長×××的概念) num=2L
2)複數 x=1-2j
五、數字類型小結
1)存一個值
2)有序
3)!!!不可變:值變,id就變。不可變==可hash
3、字符串
一、做用:名字,性別,國籍,地址等描述信息
二、定義:在單引號\雙引號\三引號內,由一串字符組成
name='egon'
三、經常使用操做+內置的方法:
1)優先掌握的操做:
(1)按索引取值(正向取+反向取):只能取(不可修改,取出的字符仍是字符串類型,空格也佔一個索引)
str[開頭的索引值:結尾的索引值:步長]
(2)切片(顧頭不顧尾,步長)
(3)長度len (等同於調用這個方法str.__len__())
(4)成員運算in和not in(結果是布爾值)
(5)移除空白strip(只能移除字符串左右兩端的空白格)
平常用法:password=input('>>: ').strip()
(6)切分split
默認是空格符作切割符號,不指定切割次數的話,整個字符串都會切
rsplit是按照倒序的方式切割
(7)循環
逐個取出字符串中的字符、range(頭,尾,步長)
2)須要掌握的操做
(1)strip,lstrip,rstrip
strip默認是移除空白,非空格的須要指定;lstrip是移除左邊的;rstrip是移除右邊的;
(2)lower,upper
lower是把字符串中的大寫字母轉換成小寫,upper是小寫換成大寫
(3)startswith,endswith
判斷字符串是不是以什麼開頭或者結尾,結果是布爾值
(4)format的三種玩法
佔位符是{}
print('this is {} this is a {}'.format('test','pen'))
(5)split,rsplit
(6)join
只有在列表內的元素全是字符串類型,才能用join拼接
用split切割完之後是一個列表,每一個元素都是字符串,能夠採用join拼接
info='root:x:0:0' l=info.split(':') print(l) print(':'.join(l))
(7)replace
(8)isdigit
3)其餘操做(瞭解便可)
(1)find,rfind,index,rindex,count
(2)center,ljust,rjust,zfill
(3)expandtabs
(4)captalize,swapcase,title
(5)is數字系列
(6)is其餘
四、字符串類型小結
1)存一個值
2)有序
3) !!!不可變:值變,id就變。不可變==可hash
4、列表
一、做用:多個裝備,多個愛好,多門課程,多個女友等
二、定義:[]內能夠有多個任意類型的值,逗號分隔
變量l= list('字符串')
l=list('hello')
print(l)
['h', 'e', 'l', 'l', 'o']
三、經常使用操做+內置方法
1)優先掌握的操做:
(1)按索引存取值(正向存取+反向存取):便可存也能夠取
(2)切片(顧頭不顧尾,步長)
(3)長度
(4)成員運算in和not in
(5)追加append (會追加在最後一個索引的後邊)
(6)刪除:直接刪除del、remove;刪除並拿到結果pop;
del list[索引]
list.remove('列表中的元素')
list.pop(索引) 能打印出刪除的那個元素
(7)循環
循環取出列表中的元素
l1=['a','b','c','d'] for i in range(len(l1)): print(l1[i])
2)須要掌握的操做:
(1)insert(插到哪一個索引值前面,插入的值)
(2)clear() python2 沒有這個方法
(3)copy() python2 沒有這個方法
(4)count() 統計列表中的某個元素的次數
(5)extend() 列表的拼接擴展,(裏面能夠寫另外一個列表名或者一個字符串)
(6)index(元素) 查找某個元素的索引值
(7)reverse() 把列表顛倒過來
(8)sort() 排序 默認的是從小到大;list.sort(reverse=True)能夠實現從大到小
3)其餘操做(瞭解便可)
四、列表類型總結
1)能夠存多個值,值均可以是任意類型
2)有序
3)!!!可變:值變,id不變。可變==不可hash
5、元組
一、做用:存多個值,對比列表來講,元組不可變(是能夠當作字典的key的),主要是用來讀
二、定義:與列表類型比,只不過[]換成()
變量名=tuple(字符串)
age=tuple('hello')
print(age,type(age)
三、經常使用操做+內置方法
1)優先掌握的操做:
(1)按索引取值(正向取+反向取):只能取
(2)切片(顧頭不顧尾,步長)
(3)長度
(4)成員運算in和not in
(5)循環
2)須要掌握的操做
(1)index
(2)count
四、元組類型總結
1)能夠存多個值,值均可以是任意類型
2)有序
3)!!!不可變:值變,id就變。不可變==可hash
6、字典
一、做用:存多個值,key-value存取,取值速度快
二、定義:key必須是不可變類型,value能夠是任意類型
info={'name':'egon','age':18,'sex':'male'} #本質info=dict({....})
或info=dict(name='egon',age=18,sex='male')
或info=dict([['name','egon'],('age',18)])
或{}.fromkeys(('name','age','sex'),None)
三、經常使用操做+內置方法
1)優先掌握的操做:
(1)按key存取值:可存可取
(2)長度len (統計鍵值對的個數)
(3)成員運算in和not in (結果是布爾值)
(4)刪除
d.pop('a') #輸出的是刪除的key對應的value值
d.popitem() #輸出的是刪除的key對應的key:value鍵值對
(5)鍵keys(),值values(),鍵值對items()
(6)循環
info = dict(name='egon', age=18, sex='male') for key in info: print(info[key]) for items in info: print(items)
四、字典類型總結
1)能夠存多個值,值均可以是任意類型
2)無序
3)!!!不可變:值變,id就變。不可變==可hash
7、集合 set
一、做用:去重,關係運算
二、定義:能夠包含多個元素,用逗號分割
s=set({元素需爲不可變類型})
集合的元素遵循三個原則:
一、每一個元素必須是不可變類型(可hash,可做爲字典的key)
二、沒有重複的元素
三、無序
PS:注意集合的目的是將不一樣的值存放到一塊兒,不一樣的集合間用來作關係運算,無需糾結於集合中單個值
三、經常使用操做+內置的方法:
1)優先掌握的操做:
(1)長度len
(2)成員運算in和not in
(3)|合集 intersection
(4)&交集 union
(5)-差集 symmetric_difference
(6)^對稱差集 difference
(7)==
(8)父集:>,>= issuperset
(9)子集:<,<= issubset
(10)循環
2)瞭解的操做:
(1)集合1.difference_update(集合2)
s1.difference_update(s2) #s1=s1.difference(s2)
(2)集合1.pop() 默認刪除的是集合的最後一個元素
(3)集合1.add() 默認添加的元素是到集合的最後面
(4)刪除集合元素
discard() 刪除的元素不存在不會報錯
remove() 刪除的元素不存在則報錯
(5)集合1.isdisjoint(集合2) 兩個集合沒有共同部分時,返回值爲True
(6)集合.update({}) 一次能夠增長多個元素
四、集合類型小結
1)存多個值
2)無序
3) !!!不可變:值變,id就變。不可變==可hash
8、數據類型總結!!!!!
一、按存儲空間的佔用分(從低到高)
數字
字符串
集合:無序,即無序存索引相關信息
元組:有序,須要存索引相關信息,不可變
列表:有序,須要存索引相關信息,可變,須要處理數據的增刪改
字典:無序,須要存key與value映射的相關信息,可變,須要處理數據的增刪改
二、按存值個數區分
標量/原子類型: 數字,字符串
容器類型:列表,元組,字典
三、按可變不可變區分
可變:列表,字典
不可變: 數字,字符串,元組
四、按訪問順序區分
直接訪問:數字
順序訪問(序列類型):字符串,列表,元組
key值訪問(映射類型):字典
9、字符編碼
https://blog.51cto.com/10630401/2312336
10、文件處理