日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python foo函数_python——函数

發(fā)布時間:2024/8/1 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python foo函数_python——函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

python——函數(shù)

函數(shù)是什么

函數(shù)一詞來源于數(shù)學(xué),但編程中的「函數(shù)」概念,與數(shù)學(xué)中的函數(shù)是有很大不同的,編程中的函數(shù)在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子過程或子程序),在Pascal中叫做procedure(過程)和function,在C中只有function,在Java里面叫做method。

在python中函數(shù)它相當(dāng)于一個獨立的代碼塊,可以被重復(fù)使用,如果需要增加一個功能或者修改一個功能,只需要,增加或者修改函數(shù)即可。

函數(shù)分類

內(nèi)置函數(shù)

python解釋器已經(jīng)為我們定義好的參數(shù),比如:len(),sum(),max()等

函數(shù)的定義

列子:定義函數(shù)使用def關(guān)鍵字,后面是函數(shù)名,函數(shù)名不能重復(fù)

def fun():#定義一個函數(shù),后面是函數(shù)名

print("Hello World")#函數(shù)體

我們看一下實列

def函數(shù)名(參數(shù)1,參數(shù)2,參數(shù)3,....):'''注釋名'''函數(shù)體return 返回的值

一旦執(zhí)行到return,整個函數(shù)就結(jié)束了。如果沒有return,會默認(rèn)返回None。return可以返回多個參數(shù),這多個參數(shù)用元組封裝。

函數(shù)的參數(shù)

1.形參和實參

函數(shù)在調(diào)用的時候,可以傳入?yún)?shù),有形參和實參,簡單點說,形參就是函數(shù)接收的參數(shù),而實參就是你實際傳入的參數(shù)。

形參:形參變量只有在被調(diào)用時才分配內(nèi)存單元,在調(diào)用結(jié)束時,即刻釋放所分配的內(nèi)存單元。因此,形參只在函數(shù)內(nèi)部有效。

實參:實參可以是常量、變量、表達(dá)式、函數(shù)等,無論實參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時,它們都必須有確定的值,以便把這些值傳送給形參。函數(shù)調(diào)用結(jié)束返回主調(diào)用函數(shù)后則不能再使用該形參變量。

形參,實參如下:

#1、位置參數(shù):按照從左到右的順序定義的參數(shù)

位置形參:必選參數(shù)

位置實參:按照位置給形參傳值#2、關(guān)鍵字參數(shù):按照key=value的形式定義的實參

無需按照位置為形參傳值

注意的問題:1. 關(guān)鍵字實參必須在位置實參右面2. 對同一個形參不能重復(fù)傳值#3、默認(rèn)參數(shù):形參在定義時就已經(jīng)為其賦值

可以傳值也可以不傳值,經(jīng)常需要變得參數(shù)定義成位置形參,變化較小的參數(shù)定義成默認(rèn)參數(shù)(形參)

注意的問題:1. 只在定義時賦值一次2. 默認(rèn)參數(shù)的定義應(yīng)該在位置形參右面3. 默認(rèn)參數(shù)通常應(yīng)該定義成不可變類型#4、可變長參數(shù):

可變長指的是實參值的個數(shù)不固定

而實參有按位置和按關(guān)鍵字兩種形式定義,針對這兩種形式的可變長,形參對應(yīng)有兩種解決方案來完整地存放它們,分別是*args,**kwargs===========*args===========

def foo(x, y, *args):print(x, y) #1 2

print(args) #(3, 4, 5)

foo(1, 2, 3, 4, 5)-----------------------------------------------

def foo(x, y, *args):print(x, y) #1 2

print(args) #(3, 4, 5)

foo(1, 2, *[3, 4, 5])-----------------------------------------------

deffoo(x, y, z):print(x, y, z) #1 2 3

foo(*[1, 2, 3])-----------------------------------------------

def foo(*args, x, y):print(x, y)print(args)

foo(1, 2, *[3, 4, 5]) #報錯

===========**kwargs===========

def foo(x, y, **kwargs):print(x, y) #1 2

print(kwargs) #{'c': 3, 'a': 1, 'b': 2}

foo(1, y=2, a=1, b=2, c=3)----------------------------------------------

def foo(x, y, **kwargs):print(x, y) #1 2

print(kwargs) #{'c': 3, 'a': 1, 'b': 2}

foo(1, y=2, **{'a': 1, 'b': 2, 'c': 3})-----------------------------------------------

deffoo(x, y, z):print(x, y, z) #2 3 1

foo(**{'z': 1, 'x': 2, 'y': 3})===========*args+**kwargs===========

def foo(x, y, *args, **kwargs):print(x, y) #1 2

print(args) #(3, 4, 5)

print(kwargs) #{'c': 4, 'b': 3, 'd': 5}

foo(1, 2, 3, 4, 5, b=3, c=4, d=5)----------------------------------------------

*后定義的參數(shù),必須被傳值(有默認(rèn)值的除外),且必須按照關(guān)鍵字實參的形式傳遞def foo(x, y, *args, a=1, b, **kwargs):print(x, y) #1 2

print(args) #(3, 4, 5)

print(a) #1

print(b) #3

print(kwargs) #{'c': 4, 'd': 5}

foo(1, 2, 3, 4, 5, b=3, c=4, d=5)View Code

2.默認(rèn)參數(shù)

默認(rèn)參數(shù)就是在定義形參的時候,給函數(shù)默認(rèn)賦一個值,比如說數(shù)據(jù)庫的端口這樣的,默認(rèn)給它一個值,這樣就算你在調(diào)用的時候沒傳入這個參數(shù),它也是有值的

#port=3306為默認(rèn)值參數(shù)

def connect(ip,port=3306):print(ip,port)#如果給一個port值,則傳新給的值

connect('118.1.1.1',3307)#如果不填,則使用默認(rèn)參數(shù)

connect('118.1.1.1')View Code

使用函數(shù)

使用的原則

函數(shù)使用的時候,要保證先定義,后調(diào)用

例子如下:

函數(shù)即“變量”,“變量”必須先定義后引用。未定義而直接引用函數(shù),就相當(dāng)于在引用一個不存在的變量名#測試一

deffoo():print('from foo')

bar()

foo()#報錯

#測試二

defbar():print('from bar')deffoo():print('from foo')

bar()

foo()#正常

#測試三

deffoo():print('from foo')

bar()defbar():print('from bar')

foo()#會報錯嗎?

#結(jié)論:函數(shù)的使用,必須遵循原則:先定義,后調(diào)用#我們在使用函數(shù)時,一定要明確地區(qū)分定義階段和調(diào)用階段

#定義階段

deffoo():print('from foo')

bar()defbar():print('from bar')#調(diào)用階段

foo()View Code

調(diào)用函數(shù)方式1 語句形式:foo()

2 表達(dá)式形式:3*len('hello')

3 當(dāng)中另外一個函數(shù)的參數(shù):range(len('hello'))

嵌套函數(shù)

嵌套函數(shù)說直接點就是在函數(shù)還有另一個函數(shù)

函數(shù)嵌套還分為調(diào)用和定義

我們先看一下調(diào)用:

defmax(x,y):return x if x > y elseydefmax4(a,b,c,d):

res1=max(a,b)

res2=max(res1,c)

res3=max(res2,d)returnres3print(max4(1,2,3,4))View Code

接下來我們看一下嵌套函數(shù)的定義:

deff1():print('from f3')

f1()View Code

函數(shù)的特性

函數(shù)是第一類對象,即函數(shù)可以當(dāng)作數(shù)據(jù)傳遞

比如:#1 可以被引用

#2 可以當(dāng)作參數(shù)傳遞

#3 返回值可以是函數(shù)

#3 可以當(dāng)作容器類型的元素

列1:

defdemo():print("demo1")

a=demo

b=a

b()View Code

總結(jié)

以上是生活随笔為你收集整理的python foo函数_python——函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。