Python基礎(chǔ) | 函數(shù)

函數(shù)的作用

寫代碼忌諱的是重復(fù),當(dāng)有重復(fù)的代碼塊出現(xiàn)時(shí),可以使用函數(shù)對(duì)代碼塊進(jìn)行封裝,使得重復(fù)部分只用一個(gè)函數(shù)就能實(shí)現(xiàn),比如我們要計(jì)算cc

3!*4!*5!

ok,一般我們可以寫成:

a = 3
b = 4
c = 5
r = 1
for i in range(1,a+1):
    r *= i

p = 1
for i in range(1,b+1):
    p *= i
    
q = 1
for i in range(1,c+1):
    q *= i
print(r*p*q)

對(duì),三個(gè)一樣的階乘計(jì)算代碼,相當(dāng)麻煩,所以我們只需將重復(fù)的代碼封裝到一個(gè)函數(shù)即可。

def factorial(num):
    r = 1
    for i in range(1,num+1):
        r *= i
    return r

那么3,4,5的階乘的乘積:

factorial(3)*factorial(4)*factorial(5)

是不是相當(dāng)簡(jiǎn)單。

定義函數(shù)

這里我們將階乘的代碼塊定義為factorial,括號(hào)內(nèi)是我們需要傳入的參數(shù),return是將結(jié)果輸出。函數(shù)的命名規(guī)則與變量的命名規(guī)則相同。

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

當(dāng)然,這里我們將參數(shù)定義為一個(gè)需要傳入的變量,我們也可以直接將參數(shù)固定:

def parameter(a=3,b=4):
    print(a+b)
parameter()
parameter(4)
parameter(4,8)

結(jié)果是7,8,12.

當(dāng)沒有參數(shù)傳入時(shí),使用的是默認(rèn)參數(shù)。

參數(shù)的設(shè)置還有一個(gè)更'懶'的方法。

直接定義為*args

這表示傳入的參數(shù)是可變參數(shù),可以是0個(gè)也可以是多個(gè)。

當(dāng)然,如果這種方式被濫用的話,還是蠻惡心的。

變量作用域

def foo():
    b = 'hello,world'
    def bar():
        global a
        print(a)
        a = 300
        print(a)
        print(b)
    bar()
    
if __name__=='__main__':
    a =100
    print('a:',a)
    foo()

結(jié)果是

a: 100
100
300
hello,world

當(dāng)global被刪掉時(shí),就會(huì)報(bào)錯(cuò)UnboundLocalError: local variable 'a' referenced before assignment

因?yàn)樵瓉韆就是全局變量,如果你修改,就會(huì)變成局部變量,所以可以先聲明一下a的作用域。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、為什么需要函數(shù) 有沒有發(fā)現(xiàn),在前面的那么多的教程當(dāng)中,我們沒有函數(shù)是不是也是可以寫的出來的,似乎沒有函數(shù)這個(gè)東...
    程序員歐陽(yáng)閱讀 626評(píng)論 0 10
  • 函數(shù)函數(shù)是可以重復(fù)使用的程序片段,函數(shù)讓你命名一塊語(yǔ)句代碼,允許你使用這個(gè)具體的函數(shù)名,在程序的任何地方,任何次數(shù)...
    Mark學(xué)編程閱讀 325評(píng)論 0 0
  • 一、Python 函數(shù) 函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如...
    無(wú)劍_君閱讀 545評(píng)論 0 0
  • 引:何謂“函數(shù)”?函數(shù)的作用是什么?怎么定義函數(shù)? 函數(shù),有另種情況會(huì)經(jīng)常用到 1、我們?cè)趯懘a的時(shí)候,可能會(huì)出來...
    爾果閱讀 547評(píng)論 0 0
  • 函數(shù)和對(duì)象 1、函數(shù) 1.1 函數(shù)概述 函數(shù)對(duì)于任何一門語(yǔ)言來說都是核心的概念。通過函數(shù)可以封裝任意多條語(yǔ)句,而且...
    道無(wú)虛閱讀 4,949評(píng)論 0 5

友情鏈接更多精彩內(nèi)容