Python全棧工程師(每週總結:2)

 

 

 ParisGabriel
 
感謝 你們的支持  
 
   
                                                         



                 天天堅持 一天一篇 點個訂閱吧  灰常感謝    當個死粉也闊以python

                                            week summer:git

                      Python人工智能從入門到精通算法

 

 

  字符串 str # 不可變序列,只能存字符
  列表 list # 可變的序列,能夠存任意數據
  元組 tuple # 不可變序列,能夠存任意數據
  字典dict # 可變無序,能夠存任意數據
  集合set #可變無序,只能存不可變數據
  (可變就是id不變的狀況下改變數據)數組

序列相關函數:  len(x), max(x), min(x), sum(x), any(x), all(x)
序列有5種:
  star 字符串
  list 列表
  tuple 元組
  bytes
  bytearray app

列表 list:
  L = [ ]
  L = list() 建立函數 括號內放可迭代對象、能夠空
  L [ ] 括號內放下標
  L [:: ] 第一個參數開始位置,第二個結束、第三個步長(步長決定方向)
  列表推導式: [表達式 for 變量 in 可迭代對象](能夠嵌套)
  del L[ ] 刪除指定下表索引
  列表能夠索引下標 、切片 能夠增、刪、改、查
  能夠索引賦值、切片賦值(不是順序切片時賦值必定要個數相等)函數


潛拷貝
  淺拷貝是指在複製過程當中,只複製一層變量,不會複製深層變量綁定的對象的複製過程測試


深拷貝
  深拷貝一般只對可變對象進行復制,不可變對象一般不會複製ui


元組 type人工智能

  t = (1, ) 低於連個元素必須用, 號
  t = type(x) 同列表同樣
  元組能夠索引和切片和列表同樣 可是可是不能賦值
  T.index(v[, begin[, end]]) 返回對應元素的索引下標
  T.count(x) 返回元組中對應的元素個數
字典 dict:
  d = { }
  d = {「a」:1} 鍵值對形式存在
  d[ ] 括號裏放鍵 ,字典索引只索引鍵(key)
索引賦值只能修改值 ,存在修改 否者添加
  dict() 生成一個字的字典 等同於 {}
  dict(iterable) 用可迭代對象初始化一個字典
  dict(**kwargs) 用關鍵字傳參形式建立一個字典
  字典的鍵(key) 必須爲不可變類型 且不能重複
不可變類型:bool, int, float, complex, str, tuple, frozenset, bytes(後面再講)
  in 在什麼什麼裏面 not in 不在什麼什麼裏面(判斷鍵存在:只判斷鍵
  is 是 is not 不是
  全部可迭代對象均可以用for 遍歷 (字典只訪問鍵)
字典推導式 : d = {x : x ** 2 for x in range(10)}
  {鍵表達式 : 值表達式 for 變量 in 可迭代對象 if 真值表達式}(可嵌套)spa

字典 VS 列表
  1. 可變對象
  2. 索引方式不一樣,列表用整數索引,字典用鍵索引
  3. 字典的插入,刪除,修改數據的速度可能會快於列表(重要)
  4. 列表的存儲是有序的,字典的存儲是無序
可變的數據類型有四種:
  list 列表、dict 字典
  set 集合、bytearray 字節數組
集合 set:
  s = set( )
  s = set( ) 構造函數
  數據不可重複 至關於只有鍵的字典
  集合運算:
    & 生成兩個集合的交集
    | 生成兩個集合的
    - 生成兩個集合的補集
    ^ 生成兩個集合的對稱補集
    > 判斷一個集合是另外一個集合的超集
    < 判斷一個集合是另外一個集合的子集 (包含關係
    == != 集合相同/不一樣 (與順序無關
集合推導式:{表達式 for 變量 in 可迭代對象 [if 真值表達式]}(可嵌套)
固定集合 frozenset
  固定集合是不可變的無序的含有惟一元素的集合
    (能夠作字典鍵也能夠作集合的值)
  frozenset()
  f = frozenset() 括號內放可迭代對象
    至關於集合的所有方法(包括運算符)去掉修改集合的方法


經常使用字符串方法
方法          說明
S.isdigit()          判斷字符串中的字符是否全爲數字
S.isalpha()          判斷字符串是否全爲英文字母
S.islower()        判斷字符串全部字符是否全爲小寫英文字母
S.isupper()       判斷字符串全部字符是否全爲大寫英文字母
S.isspace()       判斷字符串是否全爲空白字符
S.center(width[,fill])     將原字符串居中,左右默認填充空格 width:所居中字符串的長度 fill:默認填充空格
S.count(sub[, start[,end]]) 獲取一個字符串中子串的個數 sub:所要獲取的字符串 start:起始位置 end:結束位置
S.find(sub[, start[,end]])    獲取字符串中子串sub的索引,失敗返回-1 start:起始位置 end:結束位置
S.strip()           返回去掉左右空白字符的字符串
S.lstrip()                            返回去掉左側空白字符的字符串
S.rstrip()            返回去掉右側空白字符的字符串
S.upper()          生成將英文轉換爲大寫的字符串
S.lower()           生成將英文轉換爲小寫的字符串
S.replace(old, new[, count])          將原字符串的old用new代替,生成一個新的字符串 count:更換的次數
S.startswith(prefix[, start[, end]])   返回S是否是以prefix開頭,若是以prefix開頭返回True,不然返回False,
S.endswith(suffix[, start[, end]])     返回S是否是以suffix結尾,若是以suffix結尾返回True,不然返回False
如下是不經常使用的
S.title()              生成每一個英文單詞的首字母大寫字符串
S.isnumeric()     判斷字符串是否全爲數字字符
文本解析:
S.split(sep=None)     拆分字符串 sep是拆分符號
S.join(iterable)          S是分隔字符串 擴號內跟可迭代對象

列表的方法 :
L.index(v [, begin[, end]])      返回對應元素的索引下標, begin爲開始索引,end爲結束索引,當 value 不存在時觸發ValueError錯誤
L.insert(index, obj)                 將某個元素插放到列表中指定的位置
L.count(x)                               返回列表中元素的個數
L.remove(x)                           從列表中刪除第一次出如今列表中的值
L.copy()                                 複製此列表(只複製一層,不會複製深層對象)
L.append(x)                           向列表中追加單個元素
L.extend(lst)                           向列表追加另外一個列表
L.clear()                                 清空列表,等同於 L[:] = []
L.sort(reverse=False)       將列表中的元素進行排序,默認順序按值的小到大的順序排列
L.reverse()             列表的反轉,用來改變原列表的前後順序
L.pop([index])                       刪除索引對應的元素,若是不加索引,默認刪除最後元素,同時返回刪除元素的引用關係

 

字典的方法

D表明字典對象
D.clear()               清空字典
D.pop(key)           移除鍵,同時返回此鍵所對應的值
D.copy()               返回字典D的副本,只複製一層(淺拷貝)
D.update(D2)       將字典 D2 合併到D中,若是鍵相同,則此鍵的值取D2的值做爲新值
D.get(key, default) 返回鍵key所對應的值,若是沒有此鍵,則返回default
D.keys()     返回可迭代的 dict_keys 集合對象
D.values()       返回可迭代的 dict_values 值對象
D.items()     返回可迭代的 dict_items 對象


Python3 集合的方法
方法 意義
S.add(e)       在集合添加一個新的元素e;若是元素已經存在,則不添加
S.remove(e)     從集合刪除一個元素,若是元素不存在於集合中,則會產生一個KeyError錯誤
S.discard(e)      從集合S中移除一個元素e,在元素e不存在什麼都不作;
S.clear()       清空集合內的全部元素
S.copy()       將集合進行一次淺拷貝
S.pop()         從集合S中刪除一個隨機元素;若是此集合爲空,則引起KeyError異常
S.update(s2)           用 S與s2獲得的全集更新變量S
S.difference(s2)    用S - s2 運算,返回存在於在S中,但不在s2中的全部元素的集合
S.difference_update(s2)    等同於 S = S - s2
S.intersection(s2)              等同於 S & s2
S.intersection_update(s2) 等同於S = S & s2
S.isdisjoint(s2)     若是S與s2交集爲空返回True,非空則返回False
S.issubset(s2)              若是S與s2交集爲非空返回True,空則返回False
S.issuperset(...)      若是S爲s2的子集返回True,不然返回False
S.symmetric_difference(s2)      返回對稱補集,等同於 S ^ s2
S.symmetric_difference_update(s2)   用 S 與 s2 的對稱補集更新 S
S.union(s2)      生成 S 與 s2的全集


Python運算符優先級
       運算符             描述
(), [], {key: value}, {}          元組表達式、列表表達式、字典表達式、集合表達式
x[index], x[index:index],
x(arguments...), x.attribute     索引,切片,函數調用,屬性引用
** 指數    (最高優先級)
~, +, -     按位翻轉, 正號,負號
*, /, %, //    乘,除,取模和地板除
+, -         加法, 減法
>>, <<         右移, 左移運算符
& 位與(AND)
^ 位異或(XOR)
| 位或(OR)
<=, <, >, >=, ==, !=,
is, is not, in, not in    比較,身份測試,成員資格測試
not 布爾非
and 布爾與
or 布爾或
if - else 條件表達式
lambda lambda表達式

 

數據類型:
  數值類型:
    int, float, complex, bool
容器:
  不可變的容器
    str, tuple, frozenset, bytes(字節串)
  可變的容器
    list, dict, set, bytearray(字節數組)
值:
  None, False, True

運算符
  算術運算符
    + - * / // % **
  比較運算符:
    < <= > >= == !=
    in / not in
    is, is not
  布爾運算:
    not, and, or
    +(正號) -(負號)
    & | ^
    [] (索引,切片,鍵索引)


表達式:
  1
  1 + 2
  max(1,2,3) # 函數調用是表達式
  x if x > y else y, 條件表達式
三種推導式:
  列表,字典,集合推導式(三種)

語句:
  表達式語句:
    全部的表達式均可以單獨寫在一行,造成一個語句,例:
    print("hello world")
    1 + 2
  賦值語句:
    a = 100
    a = b = c = 100
    x, y = 100, 200
    a[0] = 100
    dict['name'] = 'tarena'
  del 語句
  if 語句
  while 語句
  for 語句
  break 語句
  continue語句
  pass 語句


內建函數:

  len(x), max(x), min(x), sum(x), any(x), all(x)
構造函數(用來建立同類型數據對象)
  bool(x), int(x), float(x), complex(x),
  list(x), tuple(x), str(x), dict(x), set(x),
  frozenset(x)
  abs(x)
  round(x)
  pow(x, y, z=None)

  bin(x), oct(x), hex(x)
  chr(x), ord(x)
  range(start, stop, step)
  input(x), print(x)

>>> help(__builtins__)

 

 

函數:
  就是把語句塊封裝起來 造成一個語句塊 利用函數變量直接調用語句塊的方式
  用戶自定義級別的函數是爲了提升代碼的可用性 重用性 以及邏輯清晰 維護方便
  (def 函數名(形參列表):冒號)

  形參列表能夠爲空  函數是一個空間,空間內變量不重複就不會衝突


函數調用:
  函數名(實參)
  return語句 用於返回非None對象語句

函數的參數傳遞:
  傳參方式:(2種)
    位置傳參(包含關係 )
      序列傳參
    關鍵字傳參(包含關係)
      字典關鍵字傳參
位置傳參:
  實參形參位置要對應
序列傳參:
  用 * 將序列拆解 而後位置傳參
關鍵字傳參

  將字典用「**」拆解後 實參和形參必須按形參名複製
  拆解後鍵名要在形參中存在必須一致
  鍵名必須是字符串且標識符
綜合傳參:
  在能肯定形參能惟一匹配相應實參的狀況下 全部傳參方式能夠任意組合
  位置傳參(序列傳參必定要在關鍵字傳參(字典關鍵字傳參)的左側
函數的缺省參數:
  缺省參數必須從右至左依次存在的
命名關鍵字形參:
  語法:
    def 函數名(*, 命名關鍵字形參):
      語句塊
    或
    ef 函數名(*args, 命名關鍵字形參):
      語句塊
    (關鍵字形參 必須用關鍵字傳參

  做用:
    收集多餘關鍵字傳參
雙星號字典傳參:
  語法:
    def 函數名(**字典形參名):
      語句塊
  做用:
    強制全部的參數都參數都必須用關鍵字傳參或字典關鍵字傳參
函數的參數說明:
  位置形參、星號元組形參、命名關鍵字形參、雙星號字典形參能夠混合使用
函數自左到右的順序爲:
  1.位置形參
  2.星號元組形參
  3.命名關鍵字形參
  4.雙星號字典形參

全局變量:global variable:
  函數外模塊內變量
  全局變量全部函數均可以直接訪問
局部變量:local variable:
  函數內變量
  調用時才被建立,在函數調用以後銷燬
傳參的排序規則:
  從左到右 1.位置形參 2.星號元組形參 3.命名關鍵字形參 4.雙星號字典形參

函數:

  globals()/locals()
  globals()返回當前全局做用域變量的字典
  locals() 返回當前局部做用域變量的字典

  函數名是變量 建立時綁定函數
  函數的變量名能夠序列交換算法
  函數能夠做爲另外一個函數的實參
  函數能夠做爲另外一個函數返回值
  函數能夠嵌套
python的4個做用域:
  做用域:                  英文解釋             縮寫
  局部做用域(函數內)           Local(function)            L
  外部嵌套函數做用域            Enclosing functio loc     E
  函數定義所在模塊(文件)做用域        Global(module)      G
  python內建模塊做用域           Builtin(python)       B
      包含關係(內建>模塊>外部嵌套函數>函數內)
變量名查找規則:
  訪問變量時,查找本地變量,然是包裹此函數外函數內部的變量
  ,以後全局變量,最後內建變量
  L ---> E ---> G ---> B
  在默認狀況下,變量名賦值會建立或者改變當前做用域的變量
global語句:
  聲明一個全局變量
nonlocal語句
  外部嵌套函數變量
  調用不可修改外部嵌套函數做用域內的變量進行操做
lambda表達式: 建立一個匿名函數對象
  lambda[ 參數1, 參數...]: 表達式

函數:
  eval () / exec() 函數
  eval(srouce,globals=None, locals=None)
  把一個字符串srouce
  當成一個表達式來執行,返回表達式結果
  eval(source, globals=None, local=None) 把一個字符串 srouce 當成一個表達式來執行返回表達式執行的結果
  exec(source, globals=None, locals=None) 把一個字符串source 當成程序來執行

 

 

所有劃重點 加粗 加長 加大            溜了  不吹NB了....

相關文章
相關標籤/搜索