python學習——瑣碎而深刻的點(1)

  1. 標準數據類型
    包括:數字、字符串、元組(不可變數據)以及 集合、字典、列表(可變數據)
    (1. 使用type()查看數據類型,使用isinstance(a, int) 判斷數據類型
    (2. isinstance 和 type 的區別在於:
    (3. type()不會認爲子類是一種父類類型。
    (4. isinstance()會認爲子類是一種父類類型。

  2. is 是判斷兩個標識符是不是引用自一個對象
    : x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False。

    is 與 == 區別:is 用於判斷兩個變量引用對象是否爲同一個, == 用於判斷引用變量的值是否相等。

  3. 字符串
    (1. 使用單引號,雙引號完全相同。
    (2. 多行 ‘’’ “”" 自始至終保持一小塊字符串的格式是所謂的WYSIWYG(所見即所得)格式的。
    (3. \表示轉義
    (4. 使用r可以讓語句中的轉義取消
    (5. +表示連接, *表示重複
    (6. 按字面意義級聯字符串,如"this " "is " "string"會被自動轉換爲this is string
    (7. Python 中的字符串有兩種索引方式,從左往右以 0 開始,從右往左以 -1 開始。
    (8. Python中的字符串不能改變。
    (9. Python 沒有單獨的字符類型,一個字符就是長度爲 1 的字符串。
    (10. 字符串的截取的語法格式如下:變量[頭下標:尾下標:步長],左閉右開。
    :
    print(str[2:5]) # 輸出從第三個開始到第五個的字符
    print(str[0:-1])# 輸出第一個到倒數第二個的所有字符

  4. Python字符串格式化%=格式化字符串的函數 str.format()
    在 Python 中,字符串格式化使用與 C 中 sprintf 函數一樣的語法。
    :
    print(“我叫 %s 今年 %d 歲!” % (‘小明’, 10))
    =print(“我叫{}今年{}歲!”.format(‘小明’, 10))

  5. 元組的構建
    (1. 逗號分隔序列值
    tup = 4,5,6,(7,8) #(4,5,6,(7,8))
    (2. tuple函數
    (3. 構造包含 0 個或 1 個元素的元組比較特殊,所以有一些額外的語法規則:
    tup1 = () # 空元組
    tup2 = (20,) # 一個元素,需要在元素後添加逗號
    (4. 元組不可變,元組存在可變對象是可以改變可變對象的。
    (5. +可以增加元組的長度

  6. 元組的拆包
    tup = (4,5,6)
    a, b, c = tup #得到b = 5
    a, b = b, a #可以直接進行交換
    a, *resto or *_ = tup #*resto or *_可以獲取剩下的參數

  7. 列表
    創建:[] or list()
    增,刪:append()、insert()、pop()、remove()
    連接列表:+ or extend()

  8. 列表、集合和字典的推導式
    (1. [expr for val in collection if condition] # 先for再condition最後expr
    (2. {key-expr : value-expr for val in collection if condition}
    (3. {expr for val in collection if condition}

  9. 嵌套列表推導式
    [ [expr for val in collection for val in collection if condition]
    #for表達式的順序應該與嵌套列表推導式裏的for循環順序一致。先第一個for再第二個for再condtion最後expr

  10. 列表推導式中的列表推導式
    [ [expr for val in collection if condition] for val in collection if condition]
    #先後面的for再前面的for

  11. 參數
    包括位置參數和關鍵字參數
    位置參數必須再關鍵字參數的前面,任意順序指定關鍵字參數,也可用關鍵字參數向位置參數傳參

  12. python函數可以返回多個值

  13. 柯里化:部分參數的應用
    add_five = lambda y:add_numbers(5, y) #只使用add_nnumbers()中的y

  14. 生成器和迭代器
    迭代器協議:一種令對象可遍歷的通用方法
    迭代器:一種用於上下文中(for循環)向python解釋器生成對象的對象
    生成器:包含了yield關鍵字的函數,它也是一種迭代器,只是它可以返回一個多結果的序列(有多個元素,都會返回出來),每一個元素產生之後會暫停

  15. 生成器表達式與推導式類似,只是中括號替換爲小括號,它可以作爲函數的參數。

  16. try/expect/else/finally
    else,try成功之後執行
    finally,無論報不報錯都要執行

  17. Sys.argv[ ]
    其實就是一個列表,裏邊的項爲用戶輸入的參數,關鍵就是要明白這參數是從程序外部輸入的,而非代碼本身的什麼地方,要想看到它的效果就應該將程序保存了,從外部來運行程序並給出參數。
    詳細說明:https://www.cnblogs.com/aland-1415/p/6613449.html

  18. 使用with打開文件再with結束以後就會自動關閉文件
    with通過__enter__方法初始化,然後在__exit__中做善後以及處理異常。
    緊跟with後面的語句會被求值,返回對象的__enter__()方法被調用,這個方法的返回值將被賦值給as關鍵字後面的變量,當with後面的代碼塊全部被執行完之後,將調用前面返回對象的__exit__()方法。
    詳細說明:https://www.cnblogs.com/xiaxiaoxu/p/9747551.html

  19. 文件字節數讀和二進制模式讀字數是不一樣的,f.tell()告訴句柄的位置其實是以1開始數的,f.seek(3)改變位置到3其實到了4的位置上,之後直接讀出4的數。

  20. enumerate(),返回(索引,值)
    zip(),將列表、元組或者其他序列的元素配對,新建一個元組構成的列表
    zip(*pitchers),把給定的配對拆分
    reversed(), 倒敘,是個生成器
    sort() 的參數key,可以表示用什麼來當作排序的依據
    hash(),用於檢測一個對象是否可以成爲字典的鍵
    map(函數,序列)後面的序列按照前面的函數來執行
    strip(),移除字符串開頭or結尾的字符,默認爲空格or換行符或者字符序列中的字符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章