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

歡迎訪問 生活随笔!

生活随笔

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

python

Day-4: Python函数

發(fā)布時間:2023/12/20 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Day-4: Python函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  每一個具體問題都有具體的實現(xiàn)方法,而對于同一類問題,不同的具體方法可以抽象成這一類的方法,當(dāng)給定一個特定的輸入時,這一類方法會變成適用于一具體問題的具體方法。

  這就是函數(shù)想要做的事,將一類方法簡化抽象,使得每次都可以通過該函數(shù)實現(xiàn)想要實現(xiàn)的功能。

  python內(nèi)置很多函數(shù),例如:

  abs(),求絕對值的函數(shù);

  cmp(x, y),比較x, y之間大小的函數(shù)等等

  還可以自己定義自己想要的函數(shù):

  如下:

def my_abs(x):if x >= 0:return xelse:return -x

  定義函數(shù)以def語句開頭,依次寫出函數(shù)名、括號、括號中的參數(shù)和冒號:,然后,在縮進塊中編寫函數(shù)體,函數(shù)的返回值用return語句返回。

  函數(shù)什么都不做,就是空函數(shù),如下:

def nop():pass

  實際上空函數(shù)中,pass可以用來作為占位符,比如現(xiàn)在還沒想好怎么寫函數(shù)的代碼,就可以先放一個pass,讓代碼能運行起來。

  在設(shè)計函數(shù)的參數(shù)時,應(yīng)注意必選參數(shù)在前,默認(rèn)參數(shù)在后。默認(rèn)參數(shù)可以簡化函數(shù)的調(diào)用:

def power(x, n=2):s = 1while n > 0:n = n - 1s = s * xreturn s

  定義一個默認(rèn)冪數(shù)是2的求冪函數(shù)后,只輸入一個參數(shù)時,就默認(rèn)冪數(shù)為2,輸入兩個參數(shù),則第二個參數(shù)為新的冪數(shù):

>>> power(5) 25 >>> power(5, 2) 25

  但是注意這里默認(rèn)參數(shù)得是不可變的,而不能是一個變量,不然重復(fù)調(diào)用時會出現(xiàn)錯誤。

def add_end(L=[]):L.append('END')return L

  第一次使用默認(rèn)參數(shù)調(diào)用時,結(jié)果還是對的

>>> add_end() ['END']

  但是多次調(diào)用就明顯出錯了

>>> add_end() ['END', 'END'] >>> add_end() ['END', 'END', 'END']

  這是因為原函數(shù)中的默認(rèn)參數(shù)時[],它實質(zhì)上是一個list的變量,會隨著每次使用而改變。這里表示空的list常量,應(yīng)該用“L=None”

  如果函數(shù)的輸入的個數(shù)不確定,則使用可變參數(shù)*args;如果傳入的參數(shù)是一個dict類型,則應(yīng)使用關(guān)鍵字參數(shù)**kw

  前者是將多個參數(shù)封裝成tuple,后者是將這些封裝成一個dict。所以前者得傳入一個個單個的量,后者得傳入key-value鍵值對。

  當(dāng)要一起用到必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)時,應(yīng)注意參數(shù)定義的順序是:

  必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)。

  遞歸函數(shù)中每次進入一個函數(shù)調(diào)用會增加一層棧幀,每當(dāng)函數(shù)返回時,棧就會減少一層,這樣遞歸函數(shù)就可能會出現(xiàn)棧溢出。

  解決遞歸調(diào)用棧溢出的方法是通過尾遞歸優(yōu)化。尾遞歸是指,在函數(shù)返回的時候,調(diào)用自身本身,并且,return語句不能包含表達(dá)式。這樣,編譯器或者解釋器就可以把尾遞歸做優(yōu)化,使遞歸本身無論調(diào)用多少次,都只占用一個棧幀,不會出現(xiàn)棧溢出的情況。

  遺憾的是,大多數(shù)編程語言沒有針對尾遞歸做優(yōu)化,Python解釋器也沒有做優(yōu)化==

?注:本文為學(xué)習(xí)廖雪峰Python入門整理后的筆記

轉(zhuǎn)載于:https://www.cnblogs.com/likely-kan/p/7496063.html

總結(jié)

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

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