python 函數和函數名的應用


一、函數

1.函數定義

def 關鍵字 -- 定義

func 函數名 -- 和變量定義規則一樣

()必須要寫格式

: 聲明語句結束

def my_len():

​ 函數體

def func(a:int,b:str):

​ print(a,b)

func(1,2)

2.函數的好處

​ 1.減少代碼重復性(冗余)

​ 2.代碼可讀性高

​ 3.將功能進行封裝(造工具)

3.調用函數

​ 函數名+()

​ 多次調用就是執行多次

​ 可以循環使用

def func():
print("test")

func()

4.函數的返回值

return 的內容返回給了函數的調用

return 返回一個內容(就是內容本身) 可以返回任意類型

return下方的代碼不執行,終止這個函數

return 終止函數,切記不能終止循環

return 返回多個內容的時候是元組形式

return 沒有寫返回值的時候返回的是None,不寫return返回的也是None

5.位置傳參

def yue(a,b,c=1): # 形參 c = 1是默認參數

​ print("test")

yue(True,(1,),c=3) # 實參 位置參數 > 默認參數

函數的參數

形參:函數定義的時候叫做形參

​ 位置參數

​ 默認參數

​ 混合參數

實參:函數調用的時候叫做實參

​ 位置參數

​ 關鍵字參數

​ 混合參數

傳參:將實參傳遞給形參的過程叫做傳參

6.函數的動態函數

*args,**kwargs(能夠接收函數的位置參數和動態的關鍵字參數)

定義階段(*args,**kwargs) 聚合

​ *args -- tuple

​ **kwargs -- dict

使用階段*args,*kwargs打散

​ *args - 源數據類型

​ *kwargs - 打散的是字典的鍵

優先級:位置 > 動態位置 > 默認 > 動態關鍵字

lst = [12,23,323,32,32,4]

def func(*args):

​ print(*args)

func(lst[0],lst[1]) # 笨的方法

func(*lst)

7.函數的注釋

"""

每次寫函數的時候需要寫注釋

函數名.__doc__ 查看函數的注釋

函數名.__name__ 查看函數的名字

"""

8.名稱空間

內置空間:python解釋器自帶的

全局空間:當前文件(.py文件)

局部空間:函數體開辟的空間

加載順序:內置>全局>局部

取值順序:局部>全局>內置

作用域:

全局作用域:內置+全局

局部作用域: 局部

9.函數嵌套

函數中套函數

函數嵌套調用

函數嵌套參數的傳遞

函數嵌套返回值的傳遞

10.global nonlocal

global:修改全局空間的變量對應的值

nonlocal:在外層的函數中,修改局部空間的變量值,完全不涉及全局變量,只修改離他最近的一層,最近的一層沒有變量繼續向上找,直到找到最外層函數

三元運算符

a = 10

b = 20

c = a if a > b else b

變量名 = 條件成立的結果 條件 條件不成立的結果

二、函數名的應用

1.函數名指向的是函數的內存地址,加上()就執行這個函數

func()

2.函數名就是一個變量

age1 = 12
age2 = age1
age3 = age2
print(age3)
def fuc():
    print(666)
f1 = fuc
f2 = f1
f2()
f1()

3.函數名可以作為容器類類型的元素

def func1():

 	print('in func1')

def func2():

 	print("in func2")

def func3():

     print("in func3")

lst = [func1,func2,func3]

for i in lst:

     i()

4.函數名可以作為函數的實參。

def func1():print("in func1")
def func2(argv):
    argv()
    print('in func2')
func2(func1)

5.函數名可以作為函數的返回值

def func1():
    print("in func1")
def func2(argv):
    print("in func2")
    return argv
ret = func2(func1)
ret()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM