1. 程式人生 > >Python基本概念和基本操作

Python基本概念和基本操作

文章目錄

資料結構

變長,可接收任意物件

tuple (value) 有序 可重複 value內容個數均不可變
list [value] 有序 可重複 value內容個數均可變 1.查詢和插入的時間隨著元素的增加而增加;2.佔用空間小,浪費記憶體很少
dict(map) {key,value} 無序 key值可重複 key必須是不可變物件,value可變 1.查詢和插入的速度極快,不會隨著key的增加而變慢;2.需要佔用大量的記憶體,記憶體浪費多
set {key} 無序 key值不重複 key必須實不可變物件 1,2同dict;3.要建立一個set,需要提供一個list作為輸入集合

注意:

  1. t = (1):等效 t=1

    t=(,1):表示tuple只有一個元素

  2. 可變物件: list,dict,set

    不可變物件:tuple,int,float,bytes,string

函式

函式的引數

引數的定義順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數(命名關鍵字引數中的預設引數位置任意)和關鍵字引數

位置引數 person(name) person(‘xiao’) 一個蘿蔔一個坑
預設引數 person(name,age=10) person(‘xiao’) 1.預設引數必須設定預設值,所以該引數可省去;2.預設引數必須在最後
可變引數 person(*inf) inf=[‘xiao’,10]; person(*inf) == person([‘xiao’,10]) == person(‘xiao’,10) 1.可變引數被接收為一個tuple;2.可以傳入>=0個引數;3.簡化了引數傳遞寫法
關鍵字引數 person(name, age, **kw) person(‘xiao’,10, city=‘Beijing’) 1.關鍵字引數被接收為一個dict;2.可以傳入>=0個引數;3.實現了人為可變個數地指定引數名和引數值
命名關鍵字引數 person(name, age, *, city, job,sex=‘male’) person(‘Jack’, 24, city=‘Beijing’, job) 1.關鍵字引數被接收為一個dict;2.命名關鍵字引數必須傳入引數名,但可以沒有值(即可變引數後面的變數都會限定為命名關鍵字引數,如果沒有設定預設值,則使用時必須顯示寫出引數名);3.限制關鍵字引數的名字;4.如果函式定義中已經有了一個可變引數,後面跟著的命名關鍵字引數就不再需要一個特殊分隔符*;4.命名關鍵字引數可以有預設值,從而簡化呼叫

for迴圈

  • 迴圈物件:可迭代變數Iterable。

    • 集合資料型別:list,tuple,dict,set,str

    • generator:生成器和帶yield的generator function

  • 例子:

    #dict操作
    d = {'a': 1, 'b': 2, 'c': 3}
    for key in d:
        print(key) #結果:a c b。(不一定按順序)預設迭代key
    for value in d.values():
        print(value) #結果:1 3 2。指定迭代value
    for  k, v in d.items():
        print(k, v) #結果:a 1    c 3    b 2。指定迭代key和value
    
    #list操作
    for i, value in enumerate(['A', 'B', 'C']):
        print(i, value) #把一個list變成索引-元素對
    for x, y, z in [(1, 1, 1), (2, 4, 1), (3, 9, 1)]:
       print(x, y ,z)
        
    

Python中需要注意的問題

  1. Python標準的直譯器沒有針對尾遞迴做優化,任何遞迴函式都存在棧溢位的問題。

參考文獻