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

歡迎訪問 生活随笔!

生活随笔

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

python

Python开发【第5节】【函数基础】

發布時間:2025/4/9 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python开发【第5节】【函数基础】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、函數

 函數的本質就是功能的封裝。

 函數的作用

  • 提升代碼的重復利用率,避免重復開發相同代碼
  • 提高程序開發效率
  • 便于程序維護

2、函數定義

def 函數名(參數):"""函數文檔"""函數功能代碼...函數功能代碼...調用函數:函數名(參數)形參:聲明函數時()中的參數是形參形參只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。形參只在函數內部有效。函數調用結束返回主調用函數后則不能再使用該形參變量。實參:調用函數時()中的參數是實參,實參可以是常量、變量、表達式、函數等實參在函數調用時,必須有確定的值,以便把這些值傳送給形參。函數文檔:
  • 函數的作用
  • 函數的參數介紹(個數,數據類型)
  • 函數的返回值(數據和類型)

?

3、默認參數

def 函數名(形參=默認值,形參=默認值...):函數功能代碼...函數功能代碼......調用函數:函數名() # 調用函數時所有形參采用默認值操作函數名(實參,實參...) # 調用時形參使用實參的值而拋棄默認值

4、關鍵參數

def 函數名(形參=默認值,形參=默認值...):函數功能代碼...函數功能代碼......調用函數:函數名(形參=實參,形參=實參...)  

5、收集參數

5.1、*args參數

def 函數名(*args):函數功能代碼...函數功能代碼......調用函數:函數名(實參,實參...) 沒有數量限制 *args 會把多傳入的參數變成一個元組形式

5.2、**kwargs參數

def 函數名(**kwargs):函數功能代碼...函數功能代碼......調用函數: 函數名(形參=實參,形參=實參...) 沒有數量限制
*kwargs會把多傳入的參數變成一個dict形式

6、函數返回值

return語句的特征:

  • 具有return語句的函數稱為具有返回值的函數
  • return可以為當前函數執行完畢返回一個結果,這樣的函數調用可以被接受
  • return執行之后,函數則會終止,所有return之后的語句不會被執行
  • 一個函數可以書寫多個return語句,但是一般會放入分支結構當中。
  • 一個函數如果需要返回多個數據,需要借助復合數據類型(list,tuple,set,dict)來操作
  • 不帶參數值的return語句返回None。
#!/usr/bin/python3# 可寫函數說明 def sum( arg1, arg2 ):# 返回2個參數的和."total = arg1 + arg2print ("函數內 : ", total)return total;# 調用sum函數 total = sum( 10, 20 ); print ("函數外 : ", total)

7、變量

 全局變量:

在程序的一開始定義的變量稱為全局變量,全局變量作用域是整個程序

 局部變量:

在子程序中定義的變量稱為局部變量,局部變量作用域是定義該變量的子程序

#!/usr/bin/python3 total = 0; # 這是一個全局變量 # 可寫函數說明 def sum( arg1, arg2 ):#返回2個參數的和."total = arg1 + arg2; # total在這里是局部變量.print ("函數內是局部變量 : ", total)return total;#調用sum函數 sum( 10, 20 ); print ("函數外是全局變量 : ", total)

8、匿名函數(lambda)

  lambda的主體是一個表達式,但可對有限的邏輯完成封裝。

  lambda 函數擁有自己的命名空間,且不能訪問自己參數列表之外或全局命名空間里的參數。

res = map(lambda x:x**2,[1,5,7,4,8]) for i in res:print(i)執行結果: 1 25 49 16 64

9、遞歸函數

1.定義:如果一個函數在內部調用自身本身,這個函數就是遞歸函數。

2.特性:

  • 必須有一個明確的結束條件
  • ?每次進入更深一層遞歸時,問題規模相比上次遞歸都應有所減少
  • 遞歸效率不高,遞歸層次過多會導致棧溢出(在計算機中,函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。由于棧的大小不是無限的,所以,遞歸調用的次數過多,會導致棧溢出)
def calc(n):print(n)if int(n/2) ==0:return nreturn calc(int(n/2))calc(10)輸出: 10 5 2 1

二分法查找:

data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35]
def binary_search(dataset,find_num):print(dataset)if len(dataset) >1:mid = int(len(dataset)/2)if dataset[mid] == find_num: #find itprint("找到數字",dataset[mid])elif dataset[mid] > find_num :# 找的數在mid左面print("\033[31;1m找的數在mid[%s]左面\033[0m" % dataset[mid])return binary_search(dataset[0:mid], find_num)else:# 找的數在mid右面print("\033[32;1m找的數在mid[%s]右面\033[0m" % dataset[mid])return binary_search(dataset[mid+1:],find_num)else:if dataset[0] == find_num: #find itprint("找到數字啦",dataset[0])else:print("沒的分了,要找的數字[%s]不在列表里" % find_num)binary_search(data,66)

?

轉載于:https://www.cnblogs.com/loser1949/p/9222441.html

總結

以上是生活随笔為你收集整理的Python开发【第5节】【函数基础】的全部內容,希望文章能夠幫你解決所遇到的問題。

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