免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

07-01函數(shù)的基本使用

一 引入

? 基于前一部分的學(xué)習(xí),我們已經(jīng)能開(kāi)發(fā)一些功能簡(jiǎn)單的小程序了,但隨著程序功能的增多,代碼量隨之增大,此時(shí)仍不加區(qū)分地把所有功能的實(shí)現(xiàn)代碼放到一起,將會(huì)使得程序的組織結(jié)構(gòu)不清晰,可讀性變差,且程序中需要頻繁使用同一功能時(shí),只能重復(fù)編寫(xiě)該功能的實(shí)現(xiàn)代碼,日積月累,程序?qū)⒆兊萌唛L(zhǎng),并且當(dāng)某一功能需要修改時(shí),又不得不找出所有定義及使用這段功能的地方修改之,管理維護(hù)的難度極大,好吧,裝了半天逼,到底該如何解決提出的這些問(wèn)題呢?

成都創(chuàng)新互聯(lián)公司成立十余年來(lái),這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、域名注冊(cè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開(kāi)快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,成都創(chuàng)新互聯(lián)公司通過(guò)對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

插圖:惡搞圖01
07-01 函數(shù)的基本使用

我們完全可以從現(xiàn)實(shí)生活中找到簡(jiǎn)化程序設(shè)計(jì)的方案:比如一個(gè)修理工會(huì)事先準(zhǔn)備好螺絲刀、錘子等工具,這樣在進(jìn)行修理的過(guò)程中,需要用到擰螺絲的功能時(shí)就直接拿來(lái)螺絲刀使用,需要用到錘擊物體的功能時(shí)就直接拿來(lái)錘子使用,而無(wú)需臨時(shí)制造。這個(gè)例子的核心在于’事先準(zhǔn)備好工具’,遇到應(yīng)用場(chǎng)景時(shí)’拿來(lái)就用’,。

在程序中,具備某一功能的‘工具’指的就是函數(shù),‘事先準(zhǔn)備工具’的過(guò)程即函數(shù)的定義,‘拿來(lái)就用’即函數(shù)的調(diào)用。

二 定義函數(shù)

函數(shù)的使用必須遵循’先定義,后調(diào)用’的原則。函數(shù)的定義就相當(dāng)于事先將函數(shù)體代碼保存起來(lái),然后將內(nèi)存地址賦值給函數(shù)名,函數(shù)名就是對(duì)這段代碼的引用,這和變量的定義是相似的。沒(méi)有事先定義函數(shù)而直接調(diào)用,就相當(dāng)于在引用一個(gè)不存在的’變量名’。

定義函數(shù)的語(yǔ)法

def 函數(shù)名(參數(shù)1,參數(shù)2,...):
    """文檔描述"""
    函數(shù)體
    return
  1. def: 定義函數(shù)的關(guān)鍵字;
  2. 函數(shù)名:函數(shù)名指向函數(shù)內(nèi)存地址,是對(duì)函數(shù)體代碼的引用。函數(shù)的命名應(yīng)該反映出函數(shù)的功能;
  3. 括號(hào):括號(hào)內(nèi)定義參數(shù),參數(shù)是可有可無(wú)的,且無(wú)需指定參數(shù)的類(lèi)型;
  4. 冒號(hào):括號(hào)后要加冒號(hào),然后在下一行開(kāi)始縮進(jìn)編寫(xiě)函數(shù)體的代碼;
  5. """文檔描述""": 描述函數(shù)功能,參數(shù)介紹等信息的文檔,非必要,但是建議加上,從而增強(qiáng)函數(shù)的可讀性;
  6. 函數(shù)體:由語(yǔ)句和表達(dá)式組成;
  7. return 值:定義函數(shù)的返回值,return是可有可無(wú)的。

插圖:惡搞圖02
07-01 函數(shù)的基本使用

參數(shù)是函數(shù)的調(diào)用者向函數(shù)體傳值的媒介,若函數(shù)體代碼邏輯依賴(lài)外部傳來(lái)的參數(shù)時(shí)則需要定義為參函數(shù),

def my_min(x,y):
    res=x if x < y else y
    return res

否則定義為無(wú)參函數(shù)

def interactive():
    user=input('user>>: ').strip()
    pwd=input('password>>: ').strip()
    return (user,pwd)

? 函數(shù)體為pass代表什么都不做,稱(chēng)之為空函數(shù)。定義空函數(shù)通常是有用的,因?yàn)樵诔绦蛟O(shè)計(jì)的開(kāi)始,往往是先想好程序都需要完成什么功能,然后把所有功能都列舉出來(lái)用pass充當(dāng)函數(shù)體“占位符”,這將使得程序的體系結(jié)構(gòu)立見(jiàn),清晰且可讀性強(qiáng)。例如要編寫(xiě)一個(gè)ftp程序,我們可能想到的功能有用戶認(rèn)證,下載,上傳,瀏覽,切換目錄等功能,可以先做出如下定義:

def auth_user():
    """user authentication function"""
    pass

def download_file():
    """download file function"""
    pass

def upload_file():
    """upload file function"""
    pass

def ls():
    """list contents function"""
    pass

def cd():
    """change directory"""
    pass

之后我們便可以統(tǒng)籌安排編程任務(wù),有選擇性的去實(shí)現(xiàn)上述功能來(lái)替換掉pass,從而提高開(kāi)發(fā)效率。

插圖:惡搞圖03
07-01 函數(shù)的基本使用

三 調(diào)用函數(shù)與函數(shù)返回值

? 函數(shù)的使用分為定義階段與調(diào)用階段,定義函數(shù)時(shí)只檢測(cè)語(yǔ)法,不執(zhí)行函數(shù)體代碼,函數(shù)名加括號(hào)即函數(shù)調(diào)用,只有調(diào)用函數(shù)時(shí)才會(huì)執(zhí)行函數(shù)體代碼

#定義階段
def foo():
    print('in the foo')
    bar()

def bar():
    print('in the bar')

#調(diào)用階段
foo()

執(zhí)行結(jié)果:

in the foo
in the bar

定義階段函數(shù)foo與bar均無(wú)語(yǔ)法錯(cuò)誤,而在調(diào)用階段調(diào)用foo()時(shí),函數(shù)foo與bar都早已經(jīng)存在于內(nèi)存中了,所以不會(huì)有任何問(wèn)題。

插圖:惡搞圖04
07-01 函數(shù)的基本使用

按照在程序出現(xiàn)的形式和位置,可將函數(shù)的調(diào)用形式分為三種:

#1、語(yǔ)句形式:
foo()

#2、表達(dá)式形式:
m=my_min(1,2) #將調(diào)用函數(shù)的返回值賦值給x
n=10*my_min(1,2) #將調(diào)用函數(shù)的返回值乘以10的結(jié)果賦值給n

# 3、函數(shù)調(diào)用作為參數(shù)的形式:
# my_min(2,3)作為函數(shù)my_min的第二個(gè)參數(shù),實(shí)現(xiàn)了取1,2,3中的較小者賦值給m
m=my_min(1,my_min(2,3))

若需要將函數(shù)體代碼執(zhí)行的結(jié)果返回給調(diào)用者,則需要用到return。return后無(wú)值或直接省略return,則默認(rèn)返回None,return的返回值無(wú)類(lèi)型限制,且可以將多個(gè)返回值放到一個(gè)元組內(nèi)。

>>> def test(x,y,z):
...     return x,y,z #等同于return (x,y,z)
... 
>>> res=test(1,2,3)
>>> print(res)
(1, 2, 3)

return是一個(gè)函數(shù)結(jié)束的標(biāo)志,函數(shù)內(nèi)可以有多個(gè)return,但只執(zhí)行一次函數(shù)就結(jié)束了,并把return后定義的值作為本次調(diào)用的結(jié)果返回。
07-01 函數(shù)的基本使用

當(dāng)前標(biāo)題:07-01函數(shù)的基本使用
當(dāng)前鏈接:http://m.newbst.com/article16/gohpgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)網(wǎng)站內(nèi)鏈App開(kāi)發(fā)商城網(wǎng)站云服務(wù)器Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)