python學習(11) 函式

2021-09-29 23:54:38 字數 3766 閱讀 3804

# 函式

# 1、定義函式

# 1.1 函式的定義

# 定義函式是使用def關鍵字來定義的

# 呼叫函式,可指定函式名以及用括號括起的引數資訊

def say_hello():# 定義乙個函式

print("hello world!");

say_hello();# 呼叫函式

# 1.2 向函式傳遞資訊

# 可以在函式定義的函式名括號中定義引數資訊,引數資訊是在函式呼叫時傳入

# 在下面的例子中username是乙個形參(函式完成其功能的一項資訊),在括號內

# 在下面的例子中"張三"是乙個實參(呼叫函式時傳遞給函式的資訊)

def say_name(username):# 定義乙個帶引數的函式

print(username+"說:hello world!");

say_name("張三");# 呼叫函式

# 2、傳遞實參

# 在函式定義中可以有多個形參,因此函式呼叫中也可能包含多個實參。

# 向函式傳遞實參的方式有位置實參、關鍵字實參、列表和字典等

# 2.1 位置實參

# 呼叫函式時,函式呼叫中的每乙個實參都將關聯到函式定義中的乙個形參,最簡單的關聯方式就是基於實參的順序,這種關聯方式稱之為位置實參。

# 函式可以被呼叫任意多次

# 必須注意函式呼叫中實參的順序要與函式定義中形參的順序一致

def say_message(username,message):# 定義了乙個包含兩個引數的函式

print(username+"說:"+message);

say_message("張三","我喜歡python!");# 呼叫函式

# 2.2 關鍵字實參

# 關鍵字實參是傳遞給函式的名稱-值對,直接在實參中將名稱和值關聯起來,因此向函式傳遞實參時不會混淆。

# 關鍵字實參可以讓你不需要考慮函式呼叫中實參的順序,還指出了函式呼叫各個值的用途

# 關鍵字實參的順序不重要,python只需要各個值儲存到哪個形參就行了。

def say_message2(username,message):# 定義了乙個包含兩個引數的函式

print(username+"說:"+message);

say_message2(username="李四",message="我是一名程式設計師!");# 呼叫函式

say_message2(message="我是一名程式設計師!",username="李四");# 注意這次的引數順序不一樣,但是結果一致

# 2.3 指定預設值

# 在編寫函式時,可以為每個形參指定預設值。

# 因此在呼叫函式中給形參提供了實參時,python將使用指定的實參值,否則將使用形參的預設值。

# 給形參指定預設值後,可以在函式呼叫中省略相應的實參。

def say_message3(username,message="hello world!"):# 定義了乙個包含兩個引數的函式,其中乙個引數指定預設值

print(username+"說:"+message);

say_message3("王五");# 呼叫自帶預設值的函式

say_message3("王五","我不想要你指定的預設值!");# 呼叫函式不使用指定的預設值,自己傳引數

# 3、返回值

# 函式可以得到返回值,返回乙個值或一組值,因此函式返回的值稱之為返回值。

# 在函式中,可使用return語句將值返回到呼叫函式的**行。

# 返回值可以簡化主程式,使大部分工作在函式中完成。

# 3.1 返回簡單值

def get_message(username,message):# 定義乙個帶有返回值的函式

return username+"說:"+message;

print(get_message("張三","hello world!"));# 呼叫函式並列印返回值

# 3.2 返回字典

# 函式可返回任何型別的值,包括列表和字典等複雜的資料結構

def get_user(username,password):

user=;

return user;# 返回乙個字典

print(get_user("張三","123456"));#呼叫函式並列印返回的字典

# 4、傳遞其他引數

# 4.1 傳遞列表

# 可以向函式傳遞列表作為形參

def say_hellos(users):

for user in users:

print(user+"說:hello world!");

users=["唐僧","孫悟空","豬八戒","沙僧","小白龍"];

say_hellos(users);# 呼叫函式,傳遞乙個列表作為實參

# 4.2 傳遞任意數量的實參

# python允許函式從呼叫語句中收集任意數量的實參

# 在傳遞任意引數中是使用星(*)號來標記要傳的形參。

# 傳入的任意數量引數是處理為乙個元組,如('abc','def','ghi'),即使只有乙個值也是處理為乙個元組

def say_hellos2(*users):

print(users);

say_hellos2("唐僧");# 傳遞乙個引數

say_hellos2("唐僧","孫悟空","豬八戒","沙僧","小白龍")# 傳遞多個引數

# 4.3 結合使用位置實參和任意數量實參

# 如果要讓函式接受不同型別的實參,必須在函式定義中將接納任意數量實參的形參放在最後。

# python先匹配位置實參和關鍵字實參,再將餘下的實參都收集到最後乙個形參中。

def say_groups(group_name,*group_people):# 定義函式

print("團隊名稱:"+group_name);

print("團隊成員:");

print(group_people);

say_groups("西遊取經團隊","唐僧","孫悟空","豬八戒","沙僧","小白龍");# 呼叫函式

say_groups("天龍八部團隊","喬峰","段譽","虛竹");

# 4.4 使用任意數量的關鍵字實參

# 有時候,需要接受任意數量的實參,但預先不知道傳遞給函式的會是什麼樣的資訊。

# 在這種情況下,可將函式編寫成能夠接受任意數量的鍵 — 值對——呼叫語句提供了多少就接受多少。

# 將在函式中使用標誌兩個星號(**)來標記引數

# 在下面例子中**user_info被處理為python建立了乙個名為user_info的空字典,並將所有接收到的名稱-值對都封裝到這個字典中.

def build_group(username,password,**user_info):

user={};# 定義乙個空字典,用來包含使用者資訊

user["username"]=username;

user["password"]=password;

for key,value in user_info.items():

user[key]=value;

return user;

user_group1=build_group("唐僧","123",title="金蟬子",status="師傅");# 呼叫函式,注意傳遞的引數的格式

print(user_group1);# 列印字典

user_group2=build_group("孫悟空","abc",title="齊天大聖",status="徒弟",job="弼馬溫");

print(user_group2);

python學習11函式

函式 1.定義 指通過專門的 組織,用來實現特定的功能的 段,具有相對獨立性,可供其他 重複呼叫 2.語法 def 函式名 引數 函式體 return 返回值 3.函式名命名規則 1 符合基本的識別符號命名原則 2 不能與現有內建函式名發生衝突 3 名稱應該準確的表達函式的功能 4.不帶引數的函式 ...

python學習筆記11(函式)

概述 在乙個完整的專案中,某些功能會反覆的使用。那麼會將功能封裝成函式,當我們要使用功能的時候直接呼叫函式即可 本質 函式就是對功能的封裝 優點 1 簡化 結構,增加了 的復用度 重複使用的程度 2 如果想修改某些功能或者除錯某個bug,只需要修改對應的函式即可 定義函式 格式 def 函式名 引數...

Python學習筆記11 函式

定義函式的時候,我們把引數的名字和位置確定下來,函式的介面定義就完成了。對於函式的呼叫者來說,只需要知道如何傳遞正確的引數,以及函式將返回什麼樣的值就夠了,函式內部的複雜邏輯被封裝起來,呼叫者無需了解。python的函式定義非常簡單,但靈活度卻非常大。除了正常定義的必選引數外,還可以使用預設引數 可...