欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python基礎(chǔ)(九)

系統(tǒng) 1634 0

今日主要內(nèi)容

  • 函數(shù)初識(shí)
    • 函數(shù)定義
    • 函數(shù)調(diào)用
    • 函數(shù)返回值
    • 函數(shù)參數(shù)

一、函數(shù)初識(shí)

(一)為什么要用函數(shù)

  • 有一個(gè)需求,給出一個(gè)變量,計(jì)算變量的長(zhǎng)度,要求不能使用 len()

                  
                    s = "郭老濕今天崩潰了,在后面直嘆氣"
    count = 0
    for i in s:
      count += 1
    print(count)
                  
                
  • 我們利用上述一段代碼完成了需求,很強(qiáng)666。但是問(wèn)題來(lái)了,現(xiàn)在100個(gè)人每個(gè)人給你一個(gè)變量,讓你計(jì)算變量的長(zhǎng)度,此時(shí)只能苦逼的敲代碼來(lái)計(jì)算!!!

                  
                    s = ......
    count = 0
    for i in s:
      count += 1
    print(count)
    
    lst = ......
    count = 0
    for i in lst:
      count += 1
    print(count)
    
    tu = ......
    count = 0
    for i in tu:
      count += 1
    print(count)
    
    ......................
                  
                
  • 我們發(fā)現(xiàn)一個(gè)問(wèn)題,上述每一段代碼有將近99%的內(nèi)容完全一樣,我們完全可以把這段代碼提前寫出來(lái),等到使用的時(shí)候,拿過(guò)來(lái)用一下,解決了我們重復(fù)性的大問(wèn)題,這就是函數(shù)的產(chǎn)生

                  
                    def my_len():   # 這就是把我的代碼封裝成一個(gè)函數(shù)
      count = 0
      for i in s:
          count += 1
      print(count)
    
    s = [1, 2, 3, 4, 5]
    my_len()
    
    s = "12345"
    my_len()
    
    ......................
                  
                
  • 函數(shù)可以為我們精簡(jiǎn)代碼,把重復(fù)的內(nèi)容封裝起來(lái),需要使用的時(shí)候調(diào)用就好了,同時(shí)加強(qiáng)了代碼的重用性

(二)函數(shù)定義

  • 定義函數(shù)的格式:

                  
                    def 函數(shù)名():
      函數(shù)體
                  
                
    • def:定義函數(shù)的關(guān)鍵字
    • 函數(shù)名:函數(shù)名的命名規(guī)范和變量的命名規(guī)范完全相同
    • 函數(shù)體: 函數(shù)執(zhí)行 的時(shí)候,真正執(zhí)行的部分
  • 補(bǔ)充:定義變量時(shí),開辟的內(nèi)存空間、內(nèi)存地址與變量名之間的關(guān)系

    • 內(nèi)存空間:程序執(zhí)行到定義變量?jī)?nèi)一行,先開辟一塊內(nèi)存空間,用來(lái)存放數(shù)據(jù)
    • 內(nèi)存地址:當(dāng)內(nèi)存空間開辟之后,內(nèi)存地址同時(shí)就產(chǎn)生了,一個(gè)內(nèi)存空間的地址是永遠(yuǎn)不會(huì)改變的
    • 變量名:內(nèi)存地址的外號(hào),可以更快的找到內(nèi)存空間,可有可無(wú)
                  
                    s = "zxd"
    print(id("zxd"))  # 2844747728632
    print(s)  
                  
                
  • 此時(shí)已經(jīng)開辟了一塊內(nèi)存空間,同時(shí)產(chǎn)生內(nèi)存地址,之后為了方便找到"zxd",起一個(gè)外號(hào)為a,a也指向這個(gè)內(nèi)存空間

                  
                    print("zxd")
    print(id("zxd"))  # 2118956123896
    # 單執(zhí)行這句話時(shí),開辟了一塊內(nèi)存空間,同時(shí)產(chǎn)生內(nèi)存地址,但是這個(gè)就沒(méi)有變量名,所以變量名可有可無(wú),但內(nèi)存地址是唯一的
                  
                

(三)函數(shù)調(diào)用

  • 函數(shù)的調(diào)用就是 使用之前預(yù)先定義好的函數(shù)

  • 函數(shù)調(diào)用方法: 函數(shù)名+()

                  
                    def play():
      print("登陸游戲")
      print("開始排位賽")
      print("開始激烈的爭(zhēng)逐...")
      print("Victory")
    
    play()  # 函數(shù)名+括號(hào) 就是函數(shù)調(diào)用
                  
                
  • 函數(shù)執(zhí)行順序

    • 先定義,在調(diào)用,調(diào)用后執(zhí)行函數(shù)體內(nèi)容

    Python基礎(chǔ)(九)_第1張圖片

    • 在內(nèi)存中的變化
      • 定義函數(shù)時(shí)在在內(nèi)存中開辟一塊空間,用于存放函數(shù)體執(zhí)行時(shí)產(chǎn)生的數(shù)據(jù)
      • 當(dāng)調(diào)用函數(shù)時(shí),執(zhí)行到每一行代碼都會(huì)新開辟一塊內(nèi)存空間用來(lái)存儲(chǔ)數(shù)據(jù)

    Python基礎(chǔ)(九)_第2張圖片

(四)函數(shù)返回值

  1. 為什么要有返回值?

    • 函數(shù)在執(zhí)行完之后,會(huì)自動(dòng)銷毀函數(shù)執(zhí)行期間產(chǎn)生的數(shù)據(jù),若外部程序需要用到內(nèi)部函數(shù)產(chǎn)生的數(shù)據(jù),此時(shí)就需要用返回值返回給外部函數(shù)
  2. 返回值關(guān)鍵字: return

  3. 返回值可以將函數(shù)執(zhí)行過(guò)程中產(chǎn)生的數(shù)據(jù)返回,也可以返回任意數(shù)據(jù)

  4. 如果函數(shù)沒(méi)有return或者return后沒(méi)有寫值都默認(rèn)返回None

  5. 返回值可以返回多個(gè)數(shù)據(jù),以元組形式存儲(chǔ)

  6. 返回值是函數(shù)執(zhí)行時(shí)的最后一行代碼,遇到return函數(shù)就結(jié)束了

  7. 返回值將數(shù)據(jù)返回給調(diào)用者

  8. 函數(shù)體中可以有多個(gè)返回值,但只執(zhí)行一個(gè)

                  
                    def func():
     print("郭老濕沒(méi)有買到沙發(fā)")
     print("郭老濕很絕望")
     print("郭老濕要離我們而去了")
     return "郭老濕開卡車"
    
    a = func()  # 返回"郭老濕開卡車"
                  
                
  • 函數(shù)名+() 的全部作用:
    • 調(diào)用函數(shù)
    • 接收返回值

(五)函數(shù)參數(shù)

  • 看我們一段上面的代碼

                  
                    def play():
      print("登陸游戲")
      print("開始排位賽")
      print("開始激烈的爭(zhēng)逐...")
      print("Victory")
    
    play()
    
                  
                
  • 這是LOL大概的流程,但是我們忽略了一點(diǎn),打排位得選英雄吧,那么此時(shí)我們需要填入一個(gè)參數(shù)來(lái)決定我們選擇的英雄

                  
                    def play(hero):
      print("登陸游戲")
      print("開始排位賽")
      print("選擇英雄", hero)
      print("進(jìn)入召喚師峽谷")
      print("開始激烈的爭(zhēng)逐...")
      print("Victory")
    
    play("卡莎")
    
                  
                
  • 而hero就是我們填入的參數(shù),在函數(shù)執(zhí)行的時(shí)候,我們傳入的參數(shù)就會(huì)通過(guò)函數(shù)名傳入到我們的函數(shù)體中,這有點(diǎn)類似我們的格式化輸出,參數(shù)其實(shí)可以理解為一個(gè)占位符,通過(guò)函數(shù)調(diào)用時(shí)傳進(jìn)去,接下來(lái)我們來(lái)看看參數(shù)的分類

  1. 形參(形式參數(shù)):函數(shù)定義時(shí)填入的參數(shù)

    • 位置參數(shù):按照位置順序來(lái)接收實(shí)參傳來(lái)參數(shù)
                  
                    def play(game, hero, take):  # 按照位置接收實(shí)參
     print(f"登陸{game}")
     print(f"選擇角色:{hero}")
     print(f"開始游戲:{take}")
     print("結(jié)束游戲")
    
    play("LOL", "卡莎", "發(fā)育、對(duì)線、打團(tuán)")
    play("DNF", "念皇", "刷深淵、打團(tuán)")
    
                  
                
    • 默認(rèn)值參數(shù):在函數(shù)聲明的時(shí)候就可以給出參數(shù)的默認(rèn)值,當(dāng)實(shí)際調(diào)用的時(shí)候可以給出具體的值,也可以不給
                  
                    def msg(name="zxd", age=23, sex="男"):  # 默認(rèn)值參數(shù)
        dic = dict()
        dic["name"] = name
        dic["age"] = age
        dic["sex"] = sex
        return dic
    
    print(msg())  # 默認(rèn)值參數(shù)可以傳也可以不傳
    
                  
                
    • 混合參數(shù):兩種參數(shù)混合使用
      • 優(yōu)先級(jí):位置參數(shù) > 默認(rèn)值參數(shù),位置參數(shù)一定要在默認(rèn)值參數(shù)前
                  
                    def msg(name, age, sex="男"):  # 混合參數(shù)
        dic = dict()
        dic["name"] = name
        dic["age"] = age
        dic["sex"] = sex
        return dic
    
    print(msg("zxd", 23))
    
                  
                
  2. 實(shí)參(實(shí)際參數(shù)):函數(shù)調(diào)用時(shí)填入的參數(shù)

    • 位置參數(shù):按位置照順序填入實(shí)際的參數(shù)
                  
                    def play(game, hero, take):  
     print(f"登陸{game}")
     print(f"選擇角色:{hero}")
     print(f"開始游戲:{take}")
     print("結(jié)束游戲")
    
    play("LOL", "卡莎", "發(fā)育、對(duì)線、打團(tuán)")
    play("DNF", "念皇", "刷深淵、打團(tuán)")  # 按照位置接收實(shí)參
    
                  
                
    • 關(guān)鍵字參數(shù):按照參數(shù)名字指定傳參,不用考慮位置順序
                  
                    def play(game, hero, take):  
     print(f"登陸{game}")
     print(f"選擇角色:{hero}")
     print(f"開始游戲:{take}")
     print("結(jié)束游戲")
    
    play(game="LOL", take="發(fā)育、對(duì)線、打團(tuán)", hero="卡莎")
    play(take="刷深淵、打團(tuán)", game="DNF", hero="念皇")  # 關(guān)鍵字參數(shù)
    
                  
                
    • 混合參數(shù):兩種參數(shù)混合使用
      • 優(yōu)先級(jí):位置參數(shù) > 關(guān)鍵字參數(shù),位置參數(shù)必須寫在關(guān)鍵字參數(shù)之前
                  
                    def play(game, hero, take):  
     print(f"登陸{game}")
     print(f"選擇角色:{hero}")
     print(f"開始游戲:{take}")
     print("結(jié)束游戲")
    
    play("LOL", "卡莎", "發(fā)育、對(duì)線、打團(tuán)")
    play("DNF", "念皇", take="刷深淵、打團(tuán)")  # 混合參數(shù)
    
                  
                
  3. 傳參:傳參就是實(shí)際參數(shù)傳給形式參數(shù)的一個(gè)過(guò)程

    Python基礎(chǔ)(九)_第3張圖片

    • 紅色箭頭就是傳參的過(guò)程,將實(shí)參按照位置傳給形參
    • 綠色箭頭代表函數(shù)把接收到的參數(shù)分配給自己的函數(shù)體,此時(shí)和傳參沒(méi)有關(guān)系,通過(guò)相同的形參名將參數(shù)分配給函數(shù)體

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产成人黄网在线免 | 日韩黄色大全 | 色综合久久久久 | 色淫影院 | 日韩不卡免费视频 | 久久久国产一区二区三区 | 国产一级免费视频 | 国产在线中文字幕 | 亚洲美女黄色 | 欧美日韩欧美日韩 | 国产japan色系videos护士 日韩精品视频在线免费观看 | 精品国产综合 | 深夜做爰性大片中文 | 精品国产自在2o18 | 精品国产一区二区三区久久久蜜臀 | 精品一区二区三区三区 | 久久精品二区 | 亚洲午夜av| 中文字幕av在线 | 色在线视频观看 | 亚洲一区二区三区在线免费观看 | 亚洲国产欧美在线人网站 | 欧美日韩中字 | 精品日韩欧美一区二区三区在线播放 | 日韩一区二区三区视频 | 亚洲一级在线 | 一本色道精品久久一区二区三区 | 国产精品久久久久久中文字 | 久久综合图区亚洲综合图区 | 国产成人精品福利站 | 九九色综合网 | 久久福利 | 亚洲国产精品热久久2022 | 天天爽天天色 | ppp42.com| 91精品观看91久久久久久 | 天堂网果冻传媒 | 国产毛片一级 | 小视频网站 | 亚洲午夜在线观看 | 久久久久久免费视频 |