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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

python

python函数参数学习_python函数学习1

發(fā)布時(shí)間:2025/3/15 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数参数学习_python函数学习1 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

函數(shù)1

(1)定義:

def 函數(shù)名(參數(shù)列表)

函數(shù)體

(2)參數(shù)傳遞:

在python中,一切都是對(duì)象,類型也屬于對(duì)象,變量是沒(méi)有類型的。

a = [1,2,3]

a = "helloworld"

以上代碼中,[1,2,3]是list類型,"helloworld"是string類型,而變量a是沒(méi)有類型的,它僅僅是一個(gè)對(duì)象的引用(一個(gè)指針),可以是指向list類型對(duì)象,也可以指向string類型對(duì)象。

可更改(mutable)和不可更改(immutable)對(duì)象:

在python中,string,tuples,numbers是不可更改對(duì)象,而list,dictionary等是可修改對(duì)象。

①不可變類型:變量賦值a = 5后再賦值a = 10,這里實(shí)際是新生成一個(gè)int值對(duì)象10,再讓a指向它,而5被丟棄,不是改變了a的值,相當(dāng)于新生成了a.

②可變類型:變量賦值list= [1,2,3,4]后再賦值list[2] = 5,則是將列表list的第三個(gè)元素值更改,本身沒(méi)有動(dòng),只是內(nèi)部的一部分值被修改了。

python函數(shù)的參數(shù)傳遞:

①不可變類型:類似于(值傳遞),如 整數(shù)(number)、字符串(string)、元組(tuple)。如fun(a),傳遞的只是a的值,沒(méi)有影響a對(duì)象本身。

比如在 fun(a)內(nèi)部修改 a 的值,只是修改另一個(gè)復(fù)制的對(duì)象,不會(huì)影響 a 本身。

1 defchange(a, b):2 """傳遞不可變對(duì)象,交換兩個(gè)數(shù)的值"""

3 c =a4 a =b5 b =c6

7 x = 2

8 y = 3

9

10 change(x, y)11

12 print(x, y)

輸出結(jié)果:

2 3

可以發(fā)現(xiàn),將x,y的值傳入change函數(shù),進(jìn)行交換后,輸出x,y的值還是原來(lái)的值,這就是不可變類型傳遞。

②可變類型:?類似于(引用傳遞),如 列表(list),字典(dict)。如 fun(list),則是將 list 真正的傳過(guò)去,修改后fun外部的list也會(huì)受影響。

1 defalter_list(list):2 """傳遞可變對(duì)象,修改列表的值"""

3 list[0] = 3

4

5 list1 = [1, 2, 3, 4, 5]6 alter_list(list1)7 print(list1)

輸出結(jié)果:

[3, 2, 3, 4, 5]

可以發(fā)現(xiàn),list1中的值發(fā)生了改變,同樣的寫(xiě)法,上面的例子中的值沒(méi)有改變,而下面的值卻改變,這就是因?yàn)椴豢勺冾愋秃涂勺冾愋偷膮?shù)傳遞。

注意:python 中一切都是對(duì)象,嚴(yán)格意義我們不能說(shuō)值傳遞還是引用傳遞,我們應(yīng)該說(shuō)傳不可變對(duì)象和傳可變對(duì)象。

(3)參數(shù):

必須參數(shù),位置參數(shù),關(guān)鍵字參數(shù),默認(rèn)參數(shù),不定長(zhǎng)參數(shù)。

①必須參數(shù): 調(diào)用函數(shù)時(shí)必須傳入一個(gè)參數(shù)。

1 deffunc(a):2 print(a)3

4 func() #沒(méi)有參數(shù)會(huì)報(bào)錯(cuò)

②位置參數(shù):在傳遞參數(shù)時(shí)必須與形參的順序?qū)?yīng)。

1 deffunc(a, b):2 print('a=%s'%a)3 print('b=%s'%b)4

5 func(2, 3)6 func(3, 2)

③關(guān)鍵字參數(shù):使用關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時(shí)參數(shù)的順序與聲明時(shí)不一致,因?yàn)?Python 解釋器能夠用參數(shù)名匹配參數(shù)值。

1 deffunc(a, b):2   print('a=%s'%a)3   print('b=%s'%b)4

5 func(a=2, b=3)6 func(b=3, a=2)

④默認(rèn)參數(shù):調(diào)用函數(shù)時(shí),如果沒(méi)有傳遞參數(shù),則會(huì)使用默認(rèn)參數(shù)。

1 def func(a, b=3):2 print('a=%s'%a)3 print('b=%s'%b)4

5 func(2)

⑤不定長(zhǎng)參數(shù): def 函數(shù)名(形參1,*形參2) ??????加了星號(hào)*的參數(shù)會(huì)以元組(tuple)的形式導(dǎo)入,存放所有未命名的變量參數(shù)。

def 函數(shù)名(形參1,**形參2) 加了兩個(gè)星號(hào)**的參數(shù)會(huì)以字典的形式導(dǎo)入。

1 def func1(a, *b):2   print(a)3   print(b)4

5 func1(3, 4, 5, 'a', [1, 2, 3])6

7 def func2(a, **b):8print(a)9   print(b)10

11 func2(3, c=4, d=5)  # 因?yàn)?*要以字典的形式存儲(chǔ),而字典需要key值和value值,所以傳參的時(shí)候要用這種方式

輸出結(jié)果:

3(4, 5, 'a', [1, 2, 3])3{'c': 4, 'd': 5}

總結(jié)

以上是生活随笔為你收集整理的python函数参数学习_python函数学习1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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