函數是組織好的,實現特定功能的代碼段,用的時候,調用相關的函數名便可json
以下,用關鍵字def定義一個函數,函數的函數名不能重複,函數
def add_product():#函數名
with open("products.json", "r+", encoding="utf-8") as f,\#函數體
open("products2.json","w+",encoding="utf-8")as f2:
res = json.load(f)
name = input("商品名稱:")
函數名後面的括號內定義參數,這個參數可填可不填,被稱做「形參」,對應的,函數在調用時傳入的參數被稱做「實參」spa
參數分以下四種:blog
1.位置參數,又被稱做必填參數,須以正確的順序傳入函數。調用時的數量必須和定義時的同樣,不然會報錯,如:utf-8
結果以下:input
2.默認參數:若是傳參了,取傳的值,不傳參,則取默認值,如:it
此時性別未傳參,則取默認的值變量
3.非固定長參數:又叫可變參數,上面的參數的個數都是固定的,而可變參數得個數根據所傳得參數個數來定,變量前面加 」 * " ,一般用,*args表示如:coding
它具有以下特色:im
1).不是必傳得,
2).傳入的參數所有放在元組裏
3).不限制參數個數
4).用在參數較多得狀況下
4.關鍵字參數:通常用「**kwargs"表示
它具有以下特色
1).不是必傳得,
2).他所傳的參數放在以K,V得形式放在字典裏
3).不限制個數
全局變量與局部變量
當變量定義在函數外面時被稱做全局變量,定義在函數裏面時被稱做局部變量,只在函數內部生效,若想改變全局變量,需在函數內部作聲明,添加global關鍵字,
定義此參數爲全局變量(改變list列表內容除外)