python函式講解 python的四大函式講解

2021-10-12 10:49:52 字數 4225 閱讀 3988

python的四類函式:

1.普通函式

2.預設函式

3.關鍵字函式

4.收集引數

1.普通函式

a.定義的時候直接定義變數名

b.呼叫的時候直接把變數或者值放入指定位置

def 函式名(引數1,引數2...):

函式體# 呼叫

函式名(value1,value2....)

# 呼叫的時候,具體值參考的是位置,按位置賦值

#引數的定義和使用#引數person,只是乙個符號,代表的事呼叫的時候的某乙個資料#呼叫的時候,會用p的值代替函式中所有的person

defhello(person):print(",你好".format(person))print("吃飯呀!")

p= "many"hello(p)

2.預設函式

a.形參帶有預設值

b.呼叫的時候,如果沒有對應的形參傳值,則使用預設值

der func_name(p1=v1,p2=v2....)

func_block

# 呼叫

func_name()

# 呼叫2

value=1

value=2

func_name(value1,value2....)

#預設引數示例#報名小例子,需要知道學生的性別#思路:#學習程式設計師的一般來說都是男生,所以,報名的時候如果沒有特別的指定,認為是男生

def baoming(name,age,***="male"):if *** == "male":print(",今年歲,他很棒!".format(name,age))else:print(",今年歲,ta很棒!".format(name,age))

baoming("張三",18)

baoming("小紅",18,「"female")

3.關鍵字引數

a.語法

def func(p1=v1,p2=v2....)

func_body

呼叫函式:

func(p1=v1,p2=v2.....)

b.比較麻煩,但是也有好處

1.不容易混淆,一般實參和形參只是按位置一一對應即可,容易出錯

2.使用關鍵字引數,可以不用考慮引數的位置

#關鍵字引數使用示例1:

defstu(name,age,addr):print("i an student")print("我叫,我叫,我住".format(name,age,addr))

n= "張三"a= "18"addr= "上海"

#普通引數,只能按照位置傳遞,容易出錯

stu(n,a,addr)

#關鍵字引數使用示例2:

def stu(name = "none",age = 0,addr = "none"):print("i an student")print("我叫,我叫,我住".format(name,age,addr))

n= "張三"a= "18"addr= "上海"

#這樣就是一一對應的關係

stu(name = n, age = a, addr =addr)

4.收集引數

a.把沒有位置,不能和定義時的引數位置相對應引數,放入乙個特定的資料結構中

b.語法

def func(*args):

func_body

按照list使用方式訪問args得到傳入的引數

呼叫:func(p1,p2,p3...)

b-1:引數名args不是必須這麼寫,但是,我們推薦直接使用args,約定俗成

b-2:引數名args錢需要有星號

b-3:收集引數可以和其他引數共存

#收集引數**#函式模擬乙個學生進行乙個自我介紹,但是內容具體不清楚#args把他看做乙個list

print(type(args))#需要進行遍歷

for item inargs:print(item, end=" ")print()

stu("zhangsan", 18, "beijing")

stu("lishi")

zhangsan 18 beijing

lishi

>>>對於tuple的遍歷,在python中遍歷一般都是用for遍歷

收集函式也能為空

#收集引數例項#說明收集引數可以不帶任何實參呼叫,此時收集引數為空tuple#tuple和list是兄弟倆個

stu()

#如果使用關鍵字引數格式呼叫,會出現問題

stu(name="zhangsan")

報錯:typeerror traceback (most recent call last)

in ()

1 # 如果使用關鍵字引數格式呼叫,會出現問題

----> 2stu(name="zhangsan")

typeerror: stu() got an unexpected keyword argument 'name'

此處在收集函式中不能使用關鍵字蠶食呼叫,但是在字典中可以使用關鍵字引數呼叫

4-1:收集引數之關鍵字收集引數

語法:def func( **kwargs):

func_body

呼叫:func(p1=v1, p2=v2, p3=v3....)

- kwargs一般約定俗成

- 呼叫的時候,把多餘的關鍵字引數放入kwagrs

- 訪問kwargs需要按字典格式訪問

#收集引數案例#自我介紹#呼叫的時候需要使用關鍵字引數呼叫

def stu( **kwargs):#在函式體內對於kwargs的使用不用帶星號

#對於字典的訪問kwargs.items()

for k,v inkwargs.items():print(k, "---", v)

stu(name="zhangsan", age=18, addr="bejing")

stu(name="lishi")

name --- zhangsan

age --- 18

addr --- bejing

name --- lishi

此處收集引數也可以為空

4-2:收集引數混合呼叫的順序問題

- 收集函式,關鍵字函式,普通函式可以混合使用

- 使用規則就是,普通引數和關鍵字引數有限

- 定義的時候一般先找普通引數,關鍵字引數,收集引數,收集引數tuple,收集引數dict

#收集引數混合呼叫案例#stu模擬乙個學生的自我介紹

name = "zhangsan"age= 18

#呼叫的不同的格式

stu(name, age)

stu(name, age, hobby="python")

stu(name, age, hobby="python", hobby2="lklkd",hobby3="聽**")

我叫zhangsan,我今年18歲了!

很遺憾,我沒有愛好

我叫zhangsan,我今年18歲了!

我的愛好是python

我叫zhangsan,我今年18歲了!

我的愛好是python

hobby2 --- lklkd

hobby3 --- 聽**

返回值:

- 函式和過程的區別

- 有無返回值

- 需要用return顯示返回內容

- 如果沒有返回,則預設返回none

- 推薦寫法,無論有無返回值,最後都要以return結束

#返回值示例

deffunc_1():print("有返回值")return 1

deffunc_2():print("沒有返回值")

f1=func_1()print(f1)

f2=func_2()print(f2)

有返回值

沒有返回值

none

函式文件:

- 文件寫法:

- 在函式內部開始的第一行使用三引號字元定義符

- 一般具有特定格式

- 參考案例

- 文件檢視

- 使用help函式,形如help(func)

- 使用——doc——,參考案例(此處為下滑線倆個)

注意:函式文件的編寫在pycharm中有詳細的格式要求,在此我就不在闡述了,有興趣的可以看一下

#文件案例#函式stu是模擬乙個學生的自我介紹的內容

deffunc():'''1

2'''

print("文件案例")

#檢視文件

help(func)

func.__doc__

Python函式講解

在學習函式之前,一直遵循 面向過程程式設計,即 根據業務邏輯從上到下實現功能,其往往用一長段 來實現指定功能,開發過程中最常見的操作就是貼上複製,也就是將之前實現的 塊複製到現需功能處,如下 while true if cpu利用率 90 傳送郵件提醒 連線郵箱伺服器 傳送郵件 關閉連線 if 硬碟...

python簡述定義函式的規則 python 函式

一.定義函式 函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段 函式能提高應用的模組性,和 的重複利用率 函式式 將某功能 封裝到函式中,日後便無需重複編寫,僅呼叫函式即可 物件導向 對函式進行分類和封裝,讓開發 更快更好更強.函式式程式設計最重要的是增強 的重用性和可讀性 1.定義函...

python中split 函式講解

本文講述的是string.split s sep maxsplit 針對string型別的split 函式。它主要是切割字串,結果返回由字串元素組成的乙個列表,具體怎麼使用看下面的 1.無引數的情況 a my name is zhangkang b my nname nis nzhangkang c...