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

歡迎訪問 生活随笔!

生活随笔

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

python

python函数学习1

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

函數1

1)定義:

def 函數名(參數列表)函數體

(2)參數傳遞:

  在python中,一切都是對象,類型也屬于對象,變量是沒有類型的。

  a = [1,2,3]

  a = "helloworld"

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

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

?

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

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

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

  python函數的參數傳遞:

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

        比如在 fun(a)內部修改 a 的值,只是修改另一個復制的對象,不會影響 a 本身。

1 def change(a, b): 2 """傳遞不可變對象,交換兩個數的值""" 3 c = a 4 a = b 5 b = c 6 7 x = 2 8 y = 3 9 10 change(x, y) 11 12 print(x, y)

輸出結果:

2 3

可以發現,將x,y的值傳入change函數,進行交換后,輸出x,y的值還是原來的值,這就是不可變類型傳遞。

?

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

1 def alter_list(list): 2 """傳遞可變對象,修改列表的值""" 3 list[0] = 3 4 5 list1 = [1, 2, 3, 4, 5] 6 alter_list(list1) 7 print(list1)

輸出結果:

[3, 2, 3, 4, 5]

可以發現,list1中的值發生了改變,同樣的寫法,上面的例子中的值沒有改變,而下面的值卻改變,這就是因為不可變類型和可變類型的參數傳遞。

注意:python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。

(3)參數:

  必須參數,位置參數,關鍵字參數,默認參數,不定長參數。

①必須參數: 調用函數時必須傳入一個參數。

1 def func(a): 2 print(a) 3 4 func() # 沒有參數會報錯

?

②位置參數:在傳遞參數時必須與形參的順序對應。

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

?

③關鍵字參數:使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因為 Python 解釋器能夠用參數名匹配參數值。

1 def func(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)

?

④默認參數:調用函數時,如果沒有傳遞參數,則會使用默認參數。

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

?

⑤不定長參數: def 函數名(形參1,*形參2) ??????加了星號*的參數會以元組(tuple)的形式導入,存放所有未命名的變量參數。

       def 函數名(形參1,**形參2) 加了兩個星號**的參數會以字典的形式導入。

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): 8   print(a) 9   print(b) 10 11 func2(3, c=4, d=5)  # 因為**要以字典的形式存儲,而字典需要key值和value值,所以傳參的時候要用這種方式

輸出結果:

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

?

  

?

轉載于:https://www.cnblogs.com/zuoxide/p/10534307.html

總結

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

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