亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

1.Python函數的初識

系統 1682 0

目錄

  • 一 初識函數
  • 二. 函數的結構與調用
  • 三. 函數的返回值
  • 四. 函數的參數

一 初識函數

大家都有沒有玩過陌陌,探探這種軟件?這種軟件是專門為你們沒有對象的男士設置的,這是一款合理合法的約炮,哦不對,交友軟件,那么現在我們用Python代碼簡單模擬一下:

          
            print("拿出手機")

print("打開陌陌")

print('左滑一下')

print('右滑一下')

print("找個漂亮的妹子")

print("問她,約不約啊!")

print("ok 走起")
          
        

ok so easy我們已經完成了我們模擬探探的需求,其實我們做的這個就是一個功能,什么功能呢?就是交友的功能,那么問題來了, 我還想在約一次整么搞,是不是就是在寫一遍

          
            # 約一次

pint("拿出手機")

print("打開陌陌")

print('左滑一下')

print('右滑一下')

print("找個漂亮的妹子")

print("問她,約不約啊!")

print("ok 走起")


# 再約一次

pint("拿出手機")

print("打開陌陌")

print('左滑一下')

print('右滑一下')

print("找個漂亮的妹子")

print("問她,約不約啊!")

print("ok 走起")
          
        

那么這樣寫好么? 當然不好了,為什么呢? 重復代碼太多了。 所以我們能否將這些代碼放到一個地方,想用這些代碼了,我就通過一個指令,調用過來,不想用就不寫這個指令就行了,這樣就能極大限度的減少代碼的重復率,那么咱們看下面:

          
            def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
          
        

那么這里,我寫了一個約會的功能,我將上面的那些重復代碼封裝到這個所謂的函數中,這樣,我什么時候需要使用這個功能,我通過一個指令調用即可。

          
            def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")


date()  # 調用函數
          
        

上面這個就是一個函數,那么接下來我們就來研究一下這個函數。

從上面的對比我們看一下函數的優勢:

1,減少代碼的重復性。

2,使代碼可讀性更好。

二. 函數的結構與調用

2.1函數的結構

首先咱們先看一下函數的結構:

          
            def 函數名():

    函數體
          
        

def 關鍵詞開頭,空格之后接函數名稱和圓括號(),最后還有一個":"。

def 是固定的,不能變,他就是定義函數的關鍵字。

空格 為了將def關鍵字和函數名分開,必須空(四聲),當然你可以空2格、3格或者你想空多少都行,但正常人還是空1格。

函數名:函數名只能包含字符串、下劃線和數字且不能以數字開頭。雖然函數名可以隨便起,但我們給函數起名字還是要盡量簡短,并且要具有可描述性

括號:是必須加的,先別問為啥要有括號,總之加上括號就對了(下面就會講到)!

下面的函數體一定全部都要縮進,這代表是這個函數的代碼。

我們現在就來實現剛剛我們說的定義一個約會功能:

          
            def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
          
        

哦了,這就定義完了,但是這個時候我們去執行,會發生什么現象? 什么都沒有發生.因為我只定義了一個函數.但是還沒有執行過這個函數.

2.2函數的調用

使用函數名加小括號就可以調用了 寫法:函數名() 這個時候函數的函數體會被執行

通過上面的動態圖大家可知,只有解釋器讀到函數名() 時,才會執行此函數,如果沒有這條指令,函數里面即使有10萬行代碼也是不執行的。

而且是這個指令你寫幾次,函數里面的代碼就運行幾次,就好比你在部隊,我喊你名字,喊幾次,你就得 到 幾次,這就是指令。
1.Python函數的初識_第1張圖片

1.Python函數的初識_第2張圖片

直接調用定義好的函數就可以了 咱們約完之后的得有個結果吧, 比如是約的蘿莉,還是大媽啊總得有個結果,那么這個結果

怎么來描述和獲得呢? 這就涉及到函數的返回值啦

三. 函數的返回值

一個函數就是封裝一個功能,這個功能一般都會有一個最終結果的,比如你寫一個登錄函數,最終登錄成功與否是不是需要返回你一個結果?還有咱們是不是都用過len這個函數,他是獲取一個對象的元素的總個數,最終肯定會返回一個元素個數這樣的結果:

          
            s1 = 'abfdas'
print(len(s1))  # 6
那么這個返回值如何設置呢?這就得用到python中的一個關鍵字:return

def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    return
    print("問她,約不約啊!")
    print("ok 走起")
          
        
  1. 函數中遇到return,此函數結束.不在繼續執行

那么函數的返回值,既然叫做返回值,他就是返回一些數據,那么返回給誰呢?

1.Python函數的初識_第3張圖片

跟我們之前使用的len一樣,函數的返回值返回給了 函數名() 這個整體,也就是這個執行者。

  1. return 會給函數的執行者返回值。

當然,也可以返回多個值。

1.Python函數的初識_第4張圖片

如果返回多個值,是以元組的形式返回的。

總結一下:

  1.遇到return,函數結束,return下面的(函數內)的代碼不會執行。

  2.return 會給函數的執行者返回值。

      如果return后面什么都不寫,或者函數中沒有return,則返回的結果是None

      如果return后面寫了一個值,返回給調用者這個值

      如果return后面寫了多個結果,,返回給調用者一個tuple(元組),調用者可以直接使用元組的解構獲取多個變量。

          
            def date():
    print("拿出手機")
    print("打開陌陌")
    print('左滑一下')
    print('右滑一下')
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
    return '漂亮的妹子','小蘿莉', '成熟女性'
g1,g2,g3 = date()
print(g1, g2, g3)  # 漂亮的妹子 小蘿莉 成熟女性
          
        

四. 函數的參數

我們上面研究了,函數的結構,函數的執行,以及函數的返回值。對函數有一個初步的了解,那么接下來就是一個非常重要的知識點,函數的參數。函數是以功能為導向的,上面我們寫的函數里面的代碼都是寫死的,也就是說,這個函數里面的更改起來很麻煩,試想一下,我們使用探探,陌陌等軟件,可不可以進行篩選,比如選擇性別,年齡等,導出結果? 再拿我們之前學過的len 這個len是不是可以獲取字符串的總個數?是不是可以獲取列表的總個數?你更改了len函數內部的代碼了?沒有吧?你看下面的例子:

          
            s1 = 'sfdas'
l1 = [1, 3, 7]
print(len(s1))  # 5
print(len(l1))  # 3
          
        

那么我們寫的函數也是可以將一些數據傳到函數里面的,然后讓里面的代碼利用上這個數據產生我們想要的結果,在返回。

舉個例子:

          
            def date(sex):
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s' %sex)
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")

date('女')
          
        

上面就是函數傳參的示例,函數的參數可以從兩個角度劃分:

  1.形參

    寫在函數聲明的位置的變量叫形參,形式上的一個完整.表示這個函數需要xxx

  2.實參

    在函數調用的時候給函數傳遞的值.加實參,實際執行的時候給函數傳遞的信息.表示給函數xxx

 函數的傳參就是函數將實際參數交給形式參數的過程.

          
            def date(sex):  # 函數定義時(參數) 這個就是形參
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s' %sex)
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")

date('女')  # 函數執行時(參數) 這個就是實參
# 這個過程就是:代碼運行到date('女')開始執行此函數同時將字符串'女'這個數據傳遞給變量sex,然后執行函數中的代 # 碼。如果遇到sex,其實就是使用'女'這個數據。
          
        

我們先從實參角度學習函數的參數。

實參角度

1, 位置參數

位置參數就是從左至右,實參與形參一一對應。

          
            def date(sex, age, hobby):
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
date('女','25~30','唱歌')
date('人妖','20~25','蘿莉音')
          
        

練習

編寫函數,給函數傳遞兩個參數a,b a,b相加 返回a參數和b參數相加的和

          
            def f(a,b):
    c = a+b
    return c

num_sum = f(5,8)
print(num_sum)
結果: 13
          
        

編寫函數,給函數傳遞兩個參數a,b 比較a,b的大小 返回a,b中最大的那個數

          
            def f(a,b):

    if a>b:

        return a

    else:

        return b

num_sum = f(5,8)

print(num_sum)
結果:8
          
        

比較大小的這個寫法有點麻煩,我們在這里學一個三元運算符

          
            def f(a,b):

    c = a if a > b else b  #當a>b就把a賦值給c,否則就把b賦值給c

    return c

msg = f(5,7)

print(msg)

結果:

7
          
        

2, 關鍵字參數

位置參數好不好呢? 如果是少量的參數還算OK, 沒有問題. 但是如果函數在定義的時候參數非常多怎么辦? 程序員必須記住, 我有哪些參數, 而且還有記住每個參數的位置, 否則函數就不能正常調用了. 那則么辦呢? python提出了一種叫做關鍵字參數. 我們不需要記住每個參數的位置. 只要記住每個參數的名字就可以了

          
            def date(sex, age, hobby):
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
date(hobby='唱歌',sex='女',age='25~30',)
          
        

搞定, 這樣就不需要記住繁瑣的參數位置了.

3, 混合參數

可以把上面兩種參數混合著使用. 也就是說在調用函數的時候即可以給出位置參數, 也可以指定關鍵字參數.

          
            混合參數一定要記住:關鍵字參數一定在位置參數后面。
def date(sex, age, hobby):
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
date('女',hobby='唱歌',age='25~30',)
          
        

綜上: 在實參的?角度來看參數分為三種:

          
            1. 位置參數
2. 關鍵字參數
3. 混合參數,  位置參數必須在關鍵字參數前面
          
        

接下來我們從形參角度分析,函數的參數

形參角度

1, 位置參數

  位置參數其實與實參角度的位置參數是一樣的,就是按照位置從左至右,一一對應

          
            def date(sex, age, hobby):
    print("拿出手機")
    print("打開陌陌")
    print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
    print("找個漂亮的妹子")
    print("問她,約不約啊!")
    print("ok 走起")
date('女','25~30','唱歌')
          
        

2, 默認值參數

  在函數聲明的時候, 就可以給出函數參數的默認值. 默認值參數一般是這個參數使用率較高,才會設置默認值參數,可以看看open函數的源碼,mode=‘r’就是默認值參數. 比如, 我們錄入咱們班學生的基本信息. 通過調查發現. 我們班大部分學生都是男生. 這個時 候就可以給出?一個sex='男'的默認值.

          
            def stu_info(name, age, sex='男'):   

    print("錄入學生信息")

    print(name, age, sex)   

    print("錄入完畢")



stu_info("張強", 18)
          
        

注意:必須先聲明在位置參數,才能聲明關鍵字參數

綜上:在形參的角度來看

  1. 位置參數
  2. 默認認值參數(大多數傳進來的參數都是一樣的, 一般用默認參數

函數的形參角度參數還有兩種,親看下一篇博客


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产成人精品cao在线 | 香蕉一级视频 | 亚洲 欧美 精品 | 久久精品国产视频在热 | 日日干日日爽 | 九九影视理论片在线播放 | 国产精品视频第一区二区 | 日韩专区亚洲精品欧美专区 | 日韩在线手机看片免费看 | 4hu最新网址| 久久国产视频在线观看 | 九九视频在线免费观看 | 亚洲精品视频在线观看视频 | 免费福利入口在线观看 | 久久国产免费观看精品 | 欧美与黑人午夜性猛交久久久 | 欧美一级网 | 日本一区二区三区中文字幕 | zzijzzij亚洲日本护士 | 免费一级片在线 | 国产第一区二区三区在线观看 | 国产成人精品2021欧美日韩 | 日本 毛片基地-亚洲 | 精品三级国产一区二区三区四区 | 国产精品美女在线 | 国产一级特黄特色aa毛片 | 黄片毛片大全 | 日韩久久精品一区二区三区 | 91久久爱 | 成人美女黄网站色大色费 | 亚洲国产精品综合一区在线 | 久久精品亚瑟全部免费观看 | 国产成人精品免费影视大全 | 久久久久依人综合影院 | 欧美成人三级一区二区在线观看 | 青青国产成人精品视频 | 亚洲综合无码一区二区 | 精品久久久久久18免费看 | 天天干天天插 | 成人小视频在线播放 | 狠狠r|