Python3 面向對象
文章目錄
- Python3的基本數據類型
- 6個標準的數據類型
- Numbers
- String
- List
- tuple
- Sets
- Dictionaries
- Python運算符
- 邏輯 運算符
- 成員運算符
- 身份運算符
- Python3 數字
- Python3 序列
- 序列切片
- 序列相加
- 序列相乘
- 序列相關內置函數
- Python3 列表
- 訪問列表的值
- 更新列表
- 刪除列表元素
- 拼接列表
- 嵌套列表
- 列表函數方法
- Python3 元組
- 訪問元組的值
- 修改元組
- 刪除元組元素
- 元組內置函數
- Python3 字典
- 訪問字典的值
- 修改字典
- 刪除字典元素
- 字典內置函數
- Python3 集合
- 集合的基本操作
- 集合內置函數
Python3的基本數據類型
6個標準的數據類型
Numbers(數字); String(字符串); List(列表); Tuple(元組); Set(集合); Dictionaries(字典)
Numbers
- 類型
int
float
boll
complex(復數) 4+3j
- 數值運算
2//4 除法 一個整數
2/4 除法 一個浮點數
2**5 乘方
String
- \ 轉義特殊字符
>>> print('C:\some\name')
C:\some
ame
>>> print(r'C:\some\name')
C:\some\name
- 可以使用+ *連接
>>> print('str'+'ing', 'my'*3)
string mymymy
- 可以對字符串切邊(前閉后開)
>>> word = 'ilovepython'
>>> word[1:5]
'love'
>>> word[:]
'ilovepython'
>>> word[5:]
'python'
>>> word[-10:-6]
'love'
- 與C字符串不同,Py字符串不能改變
word[0] = 'm' #這是錯誤的
List
- 寫在方括號之間,列表元素類型可以不同
>>> a = ['him', 25, 100, 'her']
>>> print(a)
['him', 25, 100, 'her']
- 可以使用+ 連接
>>> a = [1, 2, 3, 4, 5]
>>> a + [6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
tuple
- 寫在圓括號之間,與列表相似,
不同在于元組的元素不能改變
>>> a = (1991, 2014, 'physics', 'math')
>>> print(a, type(a), len(a))
(1991, 2014, 'physics', 'math') <class 'tuple'> 4
- 構造包含0或1個元素的元組的特殊語法規則
tup1 = () # 空元組
tup2 = (20,) # 一個元素,需要在元素后添加逗號
- 元組也可以使用+ 操作符
Sets
- 是一個無序不重復元素的集合(可用來成員關系測試和消除重復元素);可以使用大括號 或者 set()函數創建集合
>>> student = () #創建空集合
>>> student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
>>> print(student) # 重復的元素被自動去掉
{'Jim', 'Jack', 'Mary', 'Tom', 'Rose'}
>>> 'Rose' in student # membership testing(成員測試)
True
>>> # set可以進行集合運算
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'b', 'c', 'd', 'r'}
>>> a - b # a和b的差集
{'b', 'd', 'r'}
>>> a | b # a和b的并集
{'l', 'm', 'a', 'b', 'c', 'd', 'z', 'r'}
>>> a & b # a和b的交集
{'a', 'c'}
>>> a ^ b # a和b中不同時存在的元素
{'l', 'm', 'b', 'd', 'z', 'r'}
Dictionaries
- 字典是一種映射類型,他是一個無序的鍵值對集合。
關鍵字key必須是不可變類型
(也就是說list和包含可變類型的tuple不能是關鍵字)
>>> dic = {} # 創建空字典
>>> tel = {'Jack':1557, 'Tom':1320, 'Rose':1886}
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Rose': 1886}
>>> tel['Jack'] # 主要的操作:通過key查詢
1557
>>> del tel['Rose'] # 刪除一個鍵值對
>>> tel['Mary'] = 4127 # 添加一個鍵值對
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Mary': 4127}
>>> list(tel.keys()) # 返回所有key組成的list
['Tom', 'Jack', 'Mary']
>>> sorted(tel.keys()) # 按key排序
['Jack', 'Mary', 'Tom']
>>> 'Tom' in tel # 成員測試
True
>>> 'Mary' not in tel # 成員測試
False
- 構造函數可以直接從鍵值對swquence中構造字典
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'jack': 4098, 'sape': 4139, 'guido': 4127}>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}>>> dict(sape=4139, guido=4127, jack=4098)
{'jack': 4098, 'sape': 4139, 'guido': 4127}
Python運算符
邏輯 運算符
and; or; not
成員運算符
in; not in
身份運算符
is 兩個標識符是不是引用自一個對象
is not 兩個標識符不是引用自不同一個對象
Python3 數字
??????
Python3 序列
序列類型包括 字符串、列表、元組、集合和字典。(集合和字典不支持索引、切片、相加和相乘操作)
序列切片
訪問一定范圍內的元素
sname[start : end : step]
- sname: 序列名稱
- start: 索引開始位置(包括該位置
- end: 結束索引位置(不包括該位置)
- step:隔幾個存儲位置
str=""
#取索引區間為[0,2]之間(不包括索引2處的字符)的字符串
print(str[:2])
#隔 1 個字符取一個字符,區間是整個字符串
print(str[::2])
#取整個字符串,此時 [] 中只需一個冒號即可
print(str[:])
序列相加
序列相乘
序列相關內置函數
Python3 列表
列表的數據項不需要有相同類型
list1 = ['Google', '', 1997, 2000]
訪問列表的值
索引 | 0 | 1 | 3 |
---|---|---|---|
負索引 | -4 | -3 | -1 |
值 | ‘Google’ | ‘’ | 2000 |
更新列表
list1[2] = "1998" #直接對想要修改的數據項賦上一個新值即可修改該數據項
print ("list1的第三個元素為: ", list1[2])
list1.append(2021) #append()可以在列表后追加一項列表項
print ("追加列表項后的list1: ", list1)list1的第三個元素為: 1998
追加列表項后的list1: ['Google', '', '1998', 2000, 2021]
刪除列表元素
- del刪除
del list1[0] #del可以刪掉一個元素
print ("刪除列表項后的list1: ", list1)刪除列表項后的list1: ['', 1997, 2000]
- remove刪除
list1 = ['Google', '', 'Taobao', 'Baidu']
list1.remove('Taobao') # remove可以按值查找列表中的元素并刪除
print ("列表現在為 : ", list1)
list1.remove('Baidu')
print ("列表現在為 : ", list1)列表現在為 : ['Google', '', 'Baidu']
列表現在為 : ['Google', '']
拼接列表
+號直接
嵌套列表
>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x [['a', 'b', 'c'], [1, 2, 3]]
>>> x[0] ['a', 'b', 'c']
>>> x[0][1] 'b'
列表函數方法
Python3 元組
元組使用小括號(); 列表使用方括號[]
list1 = ('Google', '', 1997, 2000)
訪問元組的值
索引 | 0 | 1 | 3 |
---|---|---|---|
負索引 | -4 | -3 | -1 |
值 | ‘Google’ | ‘’ | 2000 |
修改元組
元組中的元素值不允許修改。但可以連接
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz')# 以下修改元組元素操作是非法的。
# tup1[0] = 100# 創建一個新的元組
tup3 = tup1 + tup2;
print (tup3)
刪除元組元素
元組中的元素值不允許刪除。但可以使用del刪除整個元組
- del刪除
tup = ('Google', '', 1997, 2020)print (tup)
del tup;
元組內置函數
Python3 字典
dict = {key1 : value1, key2 : value2 }
鍵是唯一的,不可變的(如字符串,數字,元組)
訪問字典的值
dict = {'Name': '', 'Age': 7, 'Class': 'First'}print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
修改字典
dict = {'Name': '', 'Age': 7, 'Class': 'First'}dict['Age'] = 8; # 更新 Age
dict['School'] = "教程" # 添加信息
刪除字典元素
dict = {'Name': '', 'Age': 7, 'Class': 'First'}del dict['Name'] # 刪除鍵 'Name'
dict.clear() # 刪除字典
del dict # 刪除字典print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
字典內置函數
Python3 集合
集合是一個無序的不重復元素序列
創建可以使用{} 或者 set();但創建空的必須是set();
- 集合創建
parame = {value01,value02,...}
或者
set(value)
- 集合運算
a = set('abracadabra')
b = set('alacazam')print(a)
print(b)print(a-b)print(a|b)print(a&b)print(a^b){'b', 'd', 'a', 'c', 'r'}
{'l', 'z', 'm', 'a', 'c'}
{'r', 'd', 'b'}
{'l', 'z', 'b', 'm', 'd', 'a', 'c', 'r'}
{'c', 'a'}
{'l', 'z', 'b', 'm', 'r', 'd'}
集合的基本操作
- 添加元素
s.add(x)
s.update( x ) #x可以是多個thisset = set(("Google", "", "Taobao"))
thisset.update({1,3})
print(thisset)
thisset.update([1,4],[5,6])
print(thisset){1, 3, '', 'Taobao', 'Google'}
{1, 3, 4, 5, 6, '', 'Taobao', 'Google'}
- 移除元素
s.remove( x ) #元素不存在會發生錯誤
s.discard( x ) #元素不存在不會發生錯誤
- 計算集合元素個數
len(s)
- 清空集合
s.clear()
- 判斷是否存在
x in s