黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

1.Python函數(shù)的初識(shí)

系統(tǒng) 2093 0

目錄

  • 一 初識(shí)函數(shù)
  • 二. 函數(shù)的結(jié)構(gòu)與調(diào)用
  • 三. 函數(shù)的返回值
  • 四. 函數(shù)的參數(shù)

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

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

          
            print("拿出手機(jī)")

print("打開陌陌")

print('左滑一下')

print('右滑一下')

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

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

print("ok 走起")
          
        

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

          
            # 約一次

pint("拿出手機(jī)")

print("打開陌陌")

print('左滑一下')

print('右滑一下')

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

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

print("ok 走起")


# 再約一次

pint("拿出手機(jī)")

print("打開陌陌")

print('左滑一下')

print('右滑一下')

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

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

print("ok 走起")
          
        

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

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

那么這里,我寫了一個(gè)約會(huì)的功能,我將上面的那些重復(fù)代碼封裝到這個(gè)所謂的函數(shù)中,這樣,我什么時(shí)候需要使用這個(gè)功能,我通過一個(gè)指令調(diào)用即可。

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


date()  # 調(diào)用函數(shù)
          
        

上面這個(gè)就是一個(gè)函數(shù),那么接下來我們就來研究一下這個(gè)函數(shù)。

從上面的對(duì)比我們看一下函數(shù)的優(yōu)勢(shì):

1,減少代碼的重復(fù)性。

2,使代碼可讀性更好。

二. 函數(shù)的結(jié)構(gòu)與調(diào)用

2.1函數(shù)的結(jié)構(gòu)

首先咱們先看一下函數(shù)的結(jié)構(gòu):

          
            def 函數(shù)名():

    函數(shù)體
          
        

def 關(guān)鍵詞開頭,空格之后接函數(shù)名稱和圓括號(hào)(),最后還有一個(gè)":"。

def 是固定的,不能變,他就是定義函數(shù)的關(guān)鍵字。

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

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

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

下面的函數(shù)體一定全部都要縮進(jìn),這代表是這個(gè)函數(shù)的代碼。

我們現(xiàn)在就來實(shí)現(xiàn)剛剛我們說的定義一個(gè)約會(huì)功能:

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

哦了,這就定義完了,但是這個(gè)時(shí)候我們?nèi)?zhí)行,會(huì)發(fā)生什么現(xiàn)象? 什么都沒有發(fā)生.因?yàn)槲抑欢x了一個(gè)函數(shù).但是還沒有執(zhí)行過這個(gè)函數(shù).

2.2函數(shù)的調(diào)用

使用函數(shù)名加小括號(hào)就可以調(diào)用了 寫法:函數(shù)名() 這個(gè)時(shí)候函數(shù)的函數(shù)體會(huì)被執(zhí)行

通過上面的動(dòng)態(tài)圖大家可知,只有解釋器讀到函數(shù)名() 時(shí),才會(huì)執(zhí)行此函數(shù),如果沒有這條指令,函數(shù)里面即使有10萬(wàn)行代碼也是不執(zhí)行的。

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

1.Python函數(shù)的初識(shí)_第2張圖片

直接調(diào)用定義好的函數(shù)就可以了 咱們約完之后的得有個(gè)結(jié)果吧, 比如是約的蘿莉,還是大媽啊總得有個(gè)結(jié)果,那么這個(gè)結(jié)果

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

三. 函數(shù)的返回值

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

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

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

那么函數(shù)的返回值,既然叫做返回值,他就是返回一些數(shù)據(jù),那么返回給誰(shuí)呢?

1.Python函數(shù)的初識(shí)_第3張圖片

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

  1. return 會(huì)給函數(shù)的執(zhí)行者返回值。

當(dāng)然,也可以返回多個(gè)值。

1.Python函數(shù)的初識(shí)_第4張圖片

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

總結(jié)一下:

  1.遇到return,函數(shù)結(jié)束,return下面的(函數(shù)內(nèi))的代碼不會(huì)執(zhí)行。

  2.return 會(huì)給函數(shù)的執(zhí)行者返回值。

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

      如果return后面寫了一個(gè)值,返回給調(diào)用者這個(gè)值

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

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

四. 函數(shù)的參數(shù)

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

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

那么我們寫的函數(shù)也是可以將一些數(shù)據(jù)傳到函數(shù)里面的,然后讓里面的代碼利用上這個(gè)數(shù)據(jù)產(chǎn)生我們想要的結(jié)果,在返回。

舉個(gè)例子:

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

date('女')
          
        

上面就是函數(shù)傳參的示例,函數(shù)的參數(shù)可以從兩個(gè)角度劃分:

  1.形參

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

  2.實(shí)參

    在函數(shù)調(diào)用的時(shí)候給函數(shù)傳遞的值.加實(shí)參,實(shí)際執(zhí)行的時(shí)候給函數(shù)傳遞的信息.表示給函數(shù)xxx

 函數(shù)的傳參就是函數(shù)將實(shí)際參數(shù)交給形式參數(shù)的過程.

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

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

我們先從實(shí)參角度學(xué)習(xí)函數(shù)的參數(shù)。

實(shí)參角度

1, 位置參數(shù)

位置參數(shù)就是從左至右,實(shí)參與形參一一對(duì)應(yīng)。

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

練習(xí)

編寫函數(shù),給函數(shù)傳遞兩個(gè)參數(shù)a,b a,b相加 返回a參數(shù)和b參數(shù)相加的和

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

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

編寫函數(shù),給函數(shù)傳遞兩個(gè)參數(shù)a,b 比較a,b的大小 返回a,b中最大的那個(gè)數(shù)

          
            def f(a,b):

    if a>b:

        return a

    else:

        return b

num_sum = f(5,8)

print(num_sum)
結(jié)果:8
          
        

比較大小的這個(gè)寫法有點(diǎn)麻煩,我們?cè)谶@里學(xué)一個(gè)三元運(yùn)算符

          
            def f(a,b):

    c = a if a > b else b  #當(dāng)a>b就把a(bǔ)賦值給c,否則就把b賦值給c

    return c

msg = f(5,7)

print(msg)

結(jié)果:

7
          
        

2, 關(guān)鍵字參數(shù)

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

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

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

3, 混合參數(shù)

可以把上面兩種參數(shù)混合著使用. 也就是說在調(diào)用函數(shù)的時(shí)候即可以給出位置參數(shù), 也可以指定關(guān)鍵字參數(shù).

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

綜上: 在實(shí)參的?角度來看參數(shù)分為三種:

          
            1. 位置參數(shù)
2. 關(guān)鍵字參數(shù)
3. 混合參數(shù),  位置參數(shù)必須在關(guān)鍵字參數(shù)前面
          
        

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

形參角度

1, 位置參數(shù)

  位置參數(shù)其實(shí)與實(shí)參角度的位置參數(shù)是一樣的,就是按照位置從左至右,一一對(duì)應(yīng)

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

2, 默認(rèn)值參數(shù)

  在函數(shù)聲明的時(shí)候, 就可以給出函數(shù)參數(shù)的默認(rèn)值. 默認(rèn)值參數(shù)一般是這個(gè)參數(shù)使用率較高,才會(huì)設(shè)置默認(rèn)值參數(shù),可以看看open函數(shù)的源碼,mode=‘r’就是默認(rèn)值參數(shù). 比如, 我們錄入咱們班學(xué)生的基本信息. 通過調(diào)查發(fā)現(xiàn). 我們班大部分學(xué)生都是男生. 這個(gè)時(shí) 候就可以給出?一個(gè)sex='男'的默認(rèn)值.

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

    print("錄入學(xué)生信息")

    print(name, age, sex)   

    print("錄入完畢")



stu_info("張強(qiáng)", 18)
          
        

注意:必須先聲明在位置參數(shù),才能聲明關(guān)鍵字參數(shù)

綜上:在形參的角度來看

  1. 位置參數(shù)
  2. 默認(rèn)認(rèn)值參數(shù)(大多數(shù)傳進(jìn)來的參數(shù)都是一樣的, 一般用默認(rèn)參數(shù)

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


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

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

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論