python函式的介紹及應用(意為理解)
區域性變數
區域性變數,就是在函式內部定義的變數
其作用範圍是這個函式內部,即只能在這個函式中使用,在函式的外部是不能使用的
因為其作用範圍只是在自己的函式內部,所以不同的函式可以定義相同名字的區域性變數(打個比方,把你、我是當做成函式,把區域性變數理解為每個人手裡的手機,你可有個iPhone8,我當然也可以有個iPhone8了, 互不相關)
區域性變數的作用,為了臨時儲存資料需要在函式中定義變數來進行儲存
當函式呼叫時,區域性變數被建立,當函式呼叫完成後這個變數就不能夠使用了
全域性變數:
在函式外邊定義的變數叫做全域性變數
全域性變數能夠在所有的函式中進行訪問
當函式內出現區域性變數和全域性變數相同名字時,函式內部中的 變數名 = 資料
如果在函式中出現global 全域性變數的名字
那麼這個函式中即使出現和全域性變數名相同的變數名 = 資料
也理解為對全域性變數進行修改,而不是定義區域性變數
如果在一個函式中需要對多個全域性變數進行修改,那麼可以使用.
返回值return:
一個函式中可以有多個return語句,但是隻要有一個return語句被執行到,那麼這個函式就會結束了,因此後面的return沒有什麼用處
如果程式設計為如下,是可以的因為不同的場景下執行不同的return
return後面可以是元組,列表、字典等,只要是能夠儲存多個數據的型別,就可以一次性返回多個數據
如果return後面有多個數據,那麼預設是元組
引數(預設引數,不定長引數)
預設引數:
在形參中預設有值的引數,稱之為預設引數
注意:帶有預設值的引數一定要位於引數列表的最後面
呼叫函式時,預設引數的值如果沒有傳入,則取預設值。
不定長引數:
有時可能需要一個函式能處理比當初宣告時更多的引數, 這些引數叫做不定長引數,宣告時不會命名。
加了星號(*)的變數args會存放所有未命名的變數引數,args為元組
而加**的變數kwargs會存放命名引數,即形如key=value的引數, kwargs為字典.
如果很多個值都是不定長引數,那麼這種情況下,可以將預設引數放到 *args的後面, 但如果有**kwargs的話,**kwargs必須是最後的
拆包:
- 拆包時要注意,需要拆的資料的個數要與變數的個數相同,否則程式會異常
-
除了對元組拆包之外,還可以對列表、字典等拆包
def get_my_info():
high = 178
weight = 100
age = 18
return high, weight, age
# result = get_my_info()
# print(result)
my_high, my_weight, my_age = get_my_info()
print(my_high)
print(my_weight)
print(my_age)
可變型別和不可變型別
所謂可變型別與不可變型別是指:資料能夠直接進行修改,如果能直接修改那麼就是可變,否則是不可變
可變型別有: 列表、字典、集合
不可變型別有: 數字、字串、元組