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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python foo函数_python——函数

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

python——函數

函數是什么

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

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

函數分類

內置函數

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

函數的定義

列子:定義函數使用def關鍵字,后面是函數名,函數名不能重復

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

print("Hello World")#函數體

我們看一下實列

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

一旦執行到return,整個函數就結束了。如果沒有return,會默認返回None。return可以返回多個參數,這多個參數用元組封裝。

函數的參數

1.形參和實參

函數在調用的時候,可以傳入參數,有形參和實參,簡單點說,形參就是函數接收的參數,而實參就是你實際傳入的參數。

形參:形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只在函數內部有效。

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

形參,實參如下:

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

位置形參:必選參數

位置實參:按照位置給形參傳值#2、關鍵字參數:按照key=value的形式定義的實參

無需按照位置為形參傳值

注意的問題:1. 關鍵字實參必須在位置實參右面2. 對同一個形參不能重復傳值#3、默認參數:形參在定義時就已經為其賦值

可以傳值也可以不傳值,經常需要變得參數定義成位置形參,變化較小的參數定義成默認參數(形參)

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

可變長指的是實參值的個數不固定

而實參有按位置和按關鍵字兩種形式定義,針對這兩種形式的可變長,形參對應有兩種解決方案來完整地存放它們,分別是*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)----------------------------------------------

*后定義的參數,必須被傳值(有默認值的除外),且必須按照關鍵字實參的形式傳遞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.默認參數

默認參數就是在定義形參的時候,給函數默認賦一個值,比如說數據庫的端口這樣的,默認給它一個值,這樣就算你在調用的時候沒傳入這個參數,它也是有值的

#port=3306為默認值參數

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

connect('118.1.1.1',3307)#如果不填,則使用默認參數

connect('118.1.1.1')View Code

使用函數

使用的原則

函數使用的時候,要保證先定義,后調用

例子如下:

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

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()#會報錯嗎?

#結論:函數的使用,必須遵循原則:先定義,后調用#我們在使用函數時,一定要明確地區分定義階段和調用階段

#定義階段

deffoo():print('from foo')

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

foo()View Code

調用函數方式1 語句形式:foo()

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

3 當中另外一個函數的參數:range(len('hello'))

嵌套函數

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

函數嵌套還分為調用和定義

我們先看一下調用:

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

接下來我們看一下嵌套函數的定義:

deff1():print('from f3')

f1()View Code

函數的特性

函數是第一類對象,即函數可以當作數據傳遞

比如:#1 可以被引用

#2 可以當作參數傳遞

#3 返回值可以是函數

#3 可以當作容器類型的元素

列1:

defdemo():print("demo1")

a=demo

b=a

b()View Code

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。