python中函式的使用

2021-08-18 06:17:23 字數 3536 閱讀 8284

函式的使用: 在乙個完整的專案中(**量非常大),會有很多需要重複執行的**,

可以將這些**寫到乙個函式中, 當需要使用的時候, 直接調(一行**)用即可

本質: **的封裝

好處: 1.極大的簡化的了**,

2.提高了**的復用性

3.如果想新增或者修改bug,直接去對應的函式位置修改即可

定義乙個函式:

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

語句體

return 值/表示式

1.定義函式時是以關鍵字 def 開始的

2.def後面是函式名,函式名是自己取的,遵從識別符號命名法則,

3.函式名後面跟的是 (), ()中用來定義接收引數,

4.()中的是引數列表,用來定義接收的引數, 當()中不需要接收引數時, ()也不能省略,引數列表可以是任意多個

5.()後跟的是 :,:表示函式體的開始, 函式體的範圍用統一縮進來表示函式的範圍

6.語句體就是需要復用執行的**

7.return 用來返回乙個結果 , 沒有返回值時return可以省略

呼叫格式:

函式名(引數列表)

1.呼叫時,直接寫需要呼叫函式的函式名,

2.函式名後跟(), ()中是用來傳遞實際引數

3.()中是空引數時,()不能省略

定義函式時,函式裡的**不執行,當呼叫的時候才執行

#定義簡單的函式

defsayhello

(): print("hello world")

sayhello()

通過函式來列印 乙個人的名字,和年齡

在定義函式的時候,函式括號裡的是形式引數,形式引數時用來接收實際引數的是呼叫的時候實際上是實際引數賦值給形式引數的過程

呼叫的時候相當於執行了 name = 「張三」, age = 18

def

printnameandage

(name,age):

print("name: %s age:%s"%(name,age))呼叫

#在呼叫的時候傳遞的引數是實際引數

printnameandage("張三",18)

name = "李四"

age = 25

printnameandage(name,age)

呼叫函式時,實際引數的個數要與定義的形式引數個數要一致

注意: 呼叫函式時,實際引數的出入順序,要與形式引數的順序一致

作用1: return可以用來返回乙個結果 #作用2:可以終止函式的執行, 即執行了return後,return後面的**就不執行了 #return 後面可以返回乙個表示式,return的時候會先計算表示式的結果,然後將表示式的結果返回 return可以省略,省略後預設返回 none,相當於執行了none

#簡單的求和函式

defsum

(lists):

sum = 0

for i in lists:

sum += i

return sum #sum作為函式的返回值

lists = [1,2,3,4,5,6,7,8,9]

print(sum(lists))

實際引數預設傳遞給形式引數是一一對應的, 如果想打亂順序傳入,則需要使用關鍵字引數,即給該引數賦予乙個名字,該引數就是形式引數的名字

注意; 關鍵字引數在實際引數的列表的後方

def

printinfo

(name,age,heigth,***):

print("name: %s age:%s heigth:%s ***:%s"%(name,age,heigth,***))

printinfo("張三",***="未知",age=18,heigth=180)

呼叫函式時,如果沒有傳遞引數,則使用預設引數 #可以給函式的形式引數設定預設值,當呼叫的時候,可以不傳入已經設定了預設值的實際引數, 會自動給這些引數賦予預設值 在形式引數的引數列表中, 設定了預設值的引數應該放在引數列表的後部 #在實際引數傳遞了預設位置的引數值時,優先使用實際引數

def

printinfo

(name,age,heigth,*** = "男"):

print("name: %s age:%s heigth:%s ***:%s"%(name,age,heigth,***))

printinfo("張三",age=18,heigth=180)

可以用來接收多個不確定是資料 引數名前帶了 *的用來接收任意多個沒有命名的引數, 會自動將沒有命名的引數,按照傳入順序,封裝成乙個元組, 傳遞到函式中去使用,當沒有傳入引數時,該元組為空 定長的引數最好放在,不定長引數前

不定長引數求和

addnumber(*args):

sum = 0

遍歷拿出每乙個引數

for num in args:

sum += num

return sum

可以在函式中傳入多個值

print(addnumber(1))

print(addnumber(1,2,3,4,5))

引數名前帶了 **的用來接收任意多個key = value形式的引數, 會自動將傳遞進來的 key=value形式的引數封裝成字典,如果沒有key=value形式的引數, 會封裝成乙個空字典

def

printinfo

(**kwargs):

for key,value in kwargs.items():

print(key,value)

printinfo(name = "張三",age=18, heigth=180)

定義成lambda 表示式

lambda a, b: a + b

lambda 表示式是匿名函式,用來簡化函式的建立, : 前面的表示形式引數,多個形式引數用逗號隔開, : 後表示的是返回值的表示式

fun = lambda  a,b:a+b

print

(fun(1,2))

相當於修改預設值,

partial 引數1傳入需要修改的函式名,引數2,用來設定新的預設值

簡單總結functools.partial的作用就是,把乙個函式的某些引數給固定住(也就是設定預設值返回乙個新的函式),呼叫這個新函式會更簡單。

import functools

int = functools.partial(int,base=2)

print(int("0100"))

int()函式還提供額外的base引數,預設值為10。如果傳入base引數,就可以做n進製的轉換

def

int2

(data):

return int(data,base=2)

print(int2("0100"))

python中函式的使用

需要說明的python以縮排作為程式的層級關係的語言,書寫python的程式的注意縮排,定義函式 defprints print 這廝是乙個函式 呼叫函式 prints 函式的注釋,只需要在函式 之前寫一串字串,來注釋函式的用途 當我們將光標點到這個函式的時候,就知道函式的作用 def hello ...

python中函式的使用

coding utf 8 函式的使用 什麼是函式?封裝了一段 的功能模組,可以被重複使用多次 例如 數學中三角函式.def 函式名 引數列表 函式名稱的命名規範 每個單詞都是小寫的,單詞之間用 下劃線鏈結 defeat print 1.買菜 print 2.洗菜 print 3.炒菜 print 4...

python中函式的使用

1,認識函式 1功能性 2隱藏細節 3避免編寫重複的 組織 round函式 四捨五入原則 a 1.234567 result round a,2 print result 1.232,函式的定義及執行特點 def name parametter list pass1引數列表可以沒有 2return ...