Python進階小結

1、異常TODO

萬能捕捉異常公式git

try:
    # 邏輯代碼
    1/0
except Exception as e:
    print(e)
division by zero

2、深淺拷貝

2.1 拷貝

拷貝/淺拷貝/深拷貝都是針對可變類型數據而言的api

l1 = ['a','b','c',['d','e','f']]
l2 = l1

l1.append('g')

print(l1)  # ['a','b','c',['d','e','f'],'g']
print(l2)  # ['a','b','c',['d','e','f'],'g']

若是l2是l1的拷貝對象,則l1內部的任何數據類型的元素變化,則l2內部的元素也會跟着改變,由於可變類型值變id不變app

2.2 淺拷貝

import copy


l1 = ['a','b','c',['d','e','f']]
l2 = copy.copy(l1)

l1.append('g')

print(l1)  # ['a','b','c',['d','e','f'],'g']
print(l2)  # ['a','b','c',['d','e','f']]

l1[3].append('g')

print(l1)  # ['a','b','c',['d','e','f','g'],'g']
print(l2)  # ['a','b','c',['d','e','f','g']]

若是l2是l1的淺拷貝對象,則l1內的不可變元素髮生了改變,l2不變;若是l1內的可變元素髮生了改變,則l2會跟着改變debug

2.3 深拷貝

import copy


l1 = ['a','b','c',['d','e','f']]
l2 = copy.deepcopy(l1)

l1.append('g')

print(l1)  # ['a','b','c',['d','e','f'],'g']
print(l2)  # ['a','b','c',['d','e','f']]

l1[3].append('g')

print(l1)  # ['a','b','c',['d','e','f','g'],'g']
print(l2)  # ['a','b','c',['d','e','f']]

若是l2是l1的深拷貝對象,則l1內的不可變元素髮生了改變,l2不變;若是l1內的可變元素髮生了改變,l2也不會變,即l2永遠不會由於l1的變化而變化code

3、數據類型內置方法

3.1 數字類型內置方法

3.1.1 整型

  1. 做用:定義年齡/身高/體重/id號
  2. 定義方式:
age = 18
age = int('18')
  1. 方法: + - * / % // **
  2. 多個值or一個值:一個值
  3. 有序or無序:壓根沒有有序無序這一說
  4. 可變or不可變:不可變
  • 可變:值變id不變,值變id也變

3.1.2 浮點型

  1. 做用:定義薪資/價格
  2. 定義方式:
salary = 3.2

salary = float('3.2')
  1. 方法:+ - * / % // **
  2. 多個值or一個值:一個值
  3. 有序or無序:壓根沒有有序無序這一說
  4. 可變or不可變:不可變

3.2 字符串類型內置方法

  1. 做用:姓名/
  2. 定義方式:
name = 'nick'
name = "nick"
name = '''
nick
nick
'''
name = """
nick
nick
"""
name = "'nick'"
name = '"nick"'
  1. 方法
    1. 優先掌握
      1. 索引取值
      2. 切片
      3. 長度
      4. 切分split
      5. 除兩邊空白strip
      6. 成員運算in not in
      7. for循環
    2. 須要掌握
      1. lstrip/rstrip:左/右除空白
      2. rsplit:從右開始切割
      3. upper/lower:大寫/小寫
      4. startstwith/endswith:以某開頭/以某結尾
      5. join:鏈接列表爲字符串
      6. replace:替換字符
      7. isdigit:判斷是否爲數字
    3. 瞭解
      1. find/rfind/index/rindex/count:查找/從右開始查找/索引結果/從右開始索引結果/計數
      2. center/ljust/rjust/zfill:居中填充/居左填充/居右填充/填充0
      3. expantabs:擴展tab鍵
      4. capitalize/swapcase/title:大寫/大小寫轉換/首字母大寫
      5. is系列:略
  2. 多個值or一個值:一個值
  3. 有序or無序:有序
  4. 可變or不可變:不可變

3.3 列表類型內置方法

  1. 做用:多個女友/
  2. 定義方式:[]內用逗號隔開多個任意數據類型的元素
friends_list = ['longzeluola','canglaoshi','qiaobenai','nick']
lis = list('abcd')
  1. 方法:
    1. 優先掌握
      1. 索引取值(便可取又可改)
      2. 切片
      3. 長度
      4. append
      5. 成員運算
      6. for循環
    2. 須要掌握
      1. count:元素個數計數
      2. remove:移除元素
      3. reverse:反轉列表
      4. pop:刪除元素
      5. insert:插入元素
      6. sort:列表排序
      7. index:索引元素
      8. del:刪除元素
      9. extend:擴展列表
      10. clear:清除列表
  2. 多個值or一個值:多個值
  3. 有序or無序:有序
  4. 可變or不可變:可變

3.4 元祖類型內置方法

  1. 做用:相似於列表,能夠取不能夠存
  2. 定義方式:
friends_tuple = ('longzeluola','canglaoshi','qiaobenai','nick')
tup = tuple('abcd')
  1. 方法
    1. 優先掌握
      1. 索引取值(沒法更改)
      2. 切片
      3. 長度
      4. 成員運算
      5. for循環
      6. count:元素個數計數
      7. index:元素位置索引
  2. 多個值or一個值:多個值
  3. 有序or無序:有序
  4. 可變or不可變:無可變不可變這一說

3.5 字典類型內置方法

  1. 做用:值太多列表存容易,取麻煩時使用字典
  2. 定義方式:
nick_info_dict = {
'name':'nick',
'height':180,
'weight':140,
'hobby_list':['read','run','music','fishing','programming','coding','debugging']
}

for k,v in nick_info_dict.items():
    print(k,v)
  1. 方法
    1. 優先掌握
      1. 按鍵取值
      2. 長度
      3. keys/values/items
      4. for循環
      5. 成員運算
    2. 須要掌握
      1. pop:刪除元素
      2. fromkeys:由一個列表生成一個字典,默認值爲None
      3. setdefault:有指定key不會改變值;無指定key則改變值
      4. get:經過key獲取value,無key默認獲取None
      5. update:擴展字典
      6. del:刪除字典鍵值對
  2. 多個值or一個值:多個值
  3. 有序or無序:無序
  4. 可變or不可變:可變

3.6 集合類型內置方法

  1. 做用:存多個值,爲了集合之間作運算
  2. 定義方式:
s = set()

s = {1,2,3,4,5,1}
  1. 方法:
    1. 優先掌握
      1. 去重
      2. 並集 |
      3. 交集 &
      4. 差集 -
      5. 對稱差集 ^
      6. 父集 > >=
      7. 子集 <&emsp;<=
      8. ==
    2. 須要掌握
      1. add:添加元素
      2. difference_update:更新該集合沒有的元素
      3. isdisjoint:若是兩個元素交集爲空返回True,不然返回False
      4. remove:移除元素 # 值不存在會報錯
      5. discard :移除元素 # 不會報錯
  2. 多個值or一個值:多個值
  3. 有序or無序:無序
  4. 可變or不可變:可變

3.7 布爾類型

  1. 做用:通常用於判斷,除了0/None/空/False自帶布爾值爲False,其餘的數據類型自帶布爾值爲True

4、數據類型分類

4.1 按值個數

一個值 多個值
整型/浮點型/字符串 列表/元祖/字典/集合/

4.2 按有序無序

有序 無序
字符串/列表/元祖 字典/集合

4.3 按可變不可變

可變 不可變
列表/字典/集合 整型/浮點型/字符串
相關文章
相關標籤/搜索