1. 程式人生 > >python系統學習:第三週之函式

python系統學習:第三週之函式

# 函式:如果某個程式中部分程式碼重複使用率較高,可以將其封裝起來,用到的時候就可以去呼叫這個包,這就叫函式
# ----------------------第一部分-------------------------
# 定義
def sayhi():
print("hello word!")


# 呼叫
sayhi()


# ----------------------第二部分-------------------------
# 定義函式時的括號是用來傳引數,引數的作用就是讓函式呼叫適用性更加高
# 假設設立一個向用戶問好的函式
def goodmorning(name): # 這個name就是我們傳入的使用者名稱字

print("你好,", name)


# 呼叫
goodmorning("牛屎蟲")


# 呼叫多個引數
def sign(name, age, sex="男"):
print(name, age, sex)


# 呼叫
sign("牛屎蟲", 25, "女")
sign("牛屎蟲", 25)
# ----------------------第三部分-------------------------
# 在sign()函式中,引數是由分類的
# 定義函式時用到的name、age等屬於形參,意為就是佔位;呼叫時的"牛屎蟲"等屬於實參,意為實際引數
# 定義函式時,可以指定預設值,這裡的sex="男",就是預設值

# ----------------------第四部分-------------------------
# 在sign()函式中,沒有預設值的引數屬於位置引數,就是呼叫函式時引數位置要對應;如果不想一一對應,就要用到關鍵引數
sign(age=16, name="牛屎蟲")


# ----------------------第五部分-------------------------
# 為了同時給多個人傳送問候資訊,避免多次呼叫函式(一個人調一次),需要用到非固定引數
def say(info, *argv):
for name in argv:
print(info, name)



say("你好:", "lin", "wang", "hile") # *argv 這種寫法傳進去的是一個元組


# 第二種方式
def register(info, *argv, **kwargv): # *argv 這種寫法傳進去的是一個字典
print(info, argv, kwargv)


# 呼叫
d = {"wang0": "nan", "lily": "nv"}
register("hello", "wang", "lily", **d) # 注意呼叫方式
register("hello", "wang", "lily", lily="nv")


# ----------------------第六部分-------------------------
# 返回值:return 當函式執行完畢,若需要用到執行完畢後的結果,則要用ruturn返回想用到的結果,return意味著函式中止
def register2(info, name, age):
print(info, name, age)
if age > 22:
print("age is big")
return False # 定義返回結果
else:
print("hello")
return True # 定義返回結果


# 呼叫方法
ss = register2("hello", "wang", 11)
print(ss) # 列印呼叫方法後的輸出,發現是符合條件的返回值,如果不設定return,會返回none
# ----------------------第七部分-------------------------
# 區域性變數與全域性變數
name = "牛屎蟲" # 全域性變數


def change_name():
name = "牛腳臭" # 區域性變數
print(name)


change_name() # 方法內的name屬於區域性
print(name) # 方法內的重新命名,外部的並沒有改變