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

歡迎訪問 生活随笔!

生活随笔

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

python

python基础-函数(9)

發布時間:2025/7/25 python 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python基础-函数(9) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、函數的介紹

如果在開發程序時,需要某塊代碼多次,但是為了提高編寫的效率以及代碼的重用,所以把具有獨立功能的代碼塊組織為一個小模塊,這就是函數

函數的語法格式:

def 函數名():函數的功能代碼

注意:python不像其他編程語言使用{}控制作用域,python嚴格使用縮進控制作用域,所以在python中使用,函數要嚴格的控制縮進。

?

二、函數的調用

定義了函數之后,就相當于有了一個具有某些功能的代碼,想要讓這些代碼能夠執行,需要調用它,調用函數很簡單的,

通過??函數名()? 即可完成調用

def printMenu():print("-----------------------------------")print(" 1、查詢 ")print(" 2、修改 ")print(" 3、增加 ")print("-----------------------------------")#函數的調用 printMenu() #函數可以重復調用 printMenu()

運行結果為:

-----------------------------------1、查詢 2、修改 3、增加 ----------------------------------- -----------------------------------1、查詢 2、修改 3、增加 -----------------------------------

說明:

  • 函數在調用前,一定要先聲明定義,才能使用函數
  • 在聲明定義好之后,可以在需要的地方多次調用。
  • 函數的調用就是函數名(),例如代碼匯總的printMenu()
  • ?

    三、帶有參數的函數

    參數分為實參和形參兩種形式

    • 實參 – 在調用函數的時候給函數參與運算的真實數據
    • 形參 – 在函數聲明的時候用來給真實數據做占位使用的虛擬數據

    帶參數函數的定義格式:

    def 函數名(形參1,形參2,形參3....):要執行的代碼

    舉個例子:

    #定義一個具有兩個形式參數的函數 def sum(a,b):#a,b就是形參result = a+bprint(result)#sum()函數的調用 sum(4,5)#4,5就是真實參數

    運行結果為:9

    帶參數函數的精髓就是,可以靈活的處理數據的運算。

    ?

    四、函數的返回值

    所謂“返回值”,就是程序中函數完成一件事情后,最后給調用者的結果,就像一個例子中,計算a+b的值是直接打印出來了,但是現在我不想在函數里面打印出來了,我需要在函數外面使用這個結果繼續參與其他運算該怎么辦呢?這就需要定義帶返回值的函數了。

    帶返回值的函數聲明定義格式:

    def function(形參...):函數執行的代碼return 返回值

    舉個例子:

    def sum(a,b):result = a+breturn result#result就是程序要返回出去的值 res = sum(4,5) print(res)

    運行結果為:9

    ?

    五、函數的類型

    按照格式來劃分有四種類型,具體可以根據使用場景合理的設計函數的類型。

  • 無參無返回值函數
  • 有參無返回值函數
  • 無參有返回值函數
  • 有參有返回值函數
  • ?

    六、函數的嵌套調用

    一個函數里面卻可以使用其他函數,這叫做函數的嵌套調用。

    def printMenu():print("-----------------------------------")print(" 1、查詢 ")print(" 2、修改 ")print(" 3、增加 ")print("-----------------------------------")def main():#在main()中調用printMenu()函數 printMenu()print("請輸入你的選擇:")main()

    運行結果為:

    -----------------------------------1、查詢 2、修改 3、增加 ----------------------------------- 請輸入你的選擇:

    ?

    七、局部變量和全局變量

    說明:上面程序中a是全局變量,b是局部變量,所以代碼在第8行出錯,錯誤提示?NameError: name ‘b’ is not defined?b變量沒有定義

    • 局部變量,就是在函數內部定義的變量
    • 不同的函數,可以定義相同的名字的局部變量,但是各用個的不會產生影響
    • 局部變量的作用,為了臨時保存數據需要在函數中定義變量來進行存儲,這就是它的作用
    • 全局變量既能在一個函數中使用,也能在其他的函數中使用,

    局部變量和全局變量重名,函數內使用的是局部變量的值,不影響外面的全局變量的值。

    a = 1#全局變量 print("---1---: %d"%(a)) def test1():b = 2#局部變量,只能在test1中使用print("---2---: %d"%(b))def test2():a = 3#局部變量,只能在test2中使用b = 4#局部變量,只能在test2中使用print("---3---: %d"%(a))print("---4---: %d"%(b))test1() test2() print("---5---: %d"%(a))

    運行結果為:

    ---1---: 1 ---2---: 2 ---3---: 3 ---4---: 4 ---5---: 1

    上面的例子可以看出,局部變量和全局變量重名,并不會修改全局變量的值,但是當我們在一個函數中,就需要修改全局變量的值怎么辦呢?只需要在函數內使用global修飾全局變量即可。

    a = 1#全局變量 print("---1---: %d"%(a)) def test1():b = 2print("---2---: %d"%(b))def test2():global a #在函數內部直接使用全局變量a = 3 #修改全局變量的值b = 4print("---3---: %d"%(a))print("---4---: %d"%(b))test1() test2() print("---5---: %d"%(a))

    運行結果為:

    ---1---: 1 ---2---: 2 ---3---: 3 ---4---: 4 ---5---: 3

    第3次和第5次一樣說明全局變量在函數內部修改成功。

    ?

    八、缺省參數

    • 定義函數的時候可以某個參數指定默認值,具有默認值的參數,就叫做缺省參數
    • 帶有默認值的參數一定要位于參數列表的最后面
    def printInfo(name,age = 18):print("name = %s,age = %d"%(name,age))printInfo("Se7eN_HOU") printInfo("Se7eN_HOU",28)

    運行結果為:

    name = Se7eN_HOU,age = 18 name = Se7eN_HOU,age = 28

    第一次age未傳值的時候,打印出來的是默認值18,第二次打印的是傳進來的值28.

    ?

    九、不定長參數

    使用場景:例如定義一個求兩個數之和的函數,然后在編寫一個求三個數之和的函數,也就是說,這樣的話每多一個數就要編寫一個函數,很麻煩,這里就需要設計成為一個具有不定長參數的函數。

    1、帶一個?“*”?的參數

    用一個星號?“ * ”修飾的參數是元組類型,在使用的時候可以將傳遞多來的實際有多少個參數都放在元組里面。

    def sum(*agrs):result = 0for x in agrs:result += xprint(result)sum(1) sum(1,2) sum(1,2,3)

    運行結果為:1、3、6

    2、帶兩個“**”的不定長參數

    用兩個星號“**”修飾的參數是字典類型,在使用的時候可以以字典的形式傳遞多個值給到函數參與運算

    ?

    運行結果為:

    ?

    ?

    十、匿名函數

    lambda關鍵詞能創建小型匿名函數。這種函數得名于省略了用def聲明函數的標準步驟。lambda函數的語法只包含一個語句,如下:

    lambda [arg1 [,arg2,...,agrn]]:expression

    實例如下:

    sum = lambda arg1,agr2:arg1+agr2#調用sum函數 print("sum :%d"%sum(10,20))

    運行結果為:30

    • Lambda函數能接收任何數量的參數但只能返回一個表達式的值
    • 匿名函數不能直接調用print,因為lambda需要一個表達式

    使用場景

    1、函數作為參數傳遞

    def fun(a,b,opt):print("a=%s"%(a))print("b=%s"%(b))print("result = %s"%opt(a,b))fun(1,2,lambda x,y:x+y)

    運行結果為:

    a=1 b=2 result = 3

    2、作為內置函數的參數

    stus = [{"name":"zhangsan","age":18},{"name":"lis","age":19},{"name":"wangwu","age":17}]

    按name排序

    stus.sort(key = lambda x:x["name"]) print(stus)

    運行結果為:[{'name': 'lis', 'age': 19}, {'name': 'wangwu', 'age': 17}, {'name': 'zhangsan', 'age': 18}]

    按age排序

    stus.sort(key =lambda x:x["age"]) print(stus)

    運行結果為:[{'name': 'wangwu', 'age': 17}, {'name': 'zhangsan', 'age': 18}, {'name': 'lis', 'age': 19}]

    轉載于:https://www.cnblogs.com/Se7eN-HOU/p/10693752.html

    總結

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

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