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

函數(shù)的作用

寫代碼忌諱的是重復(fù)辐棒,當(dāng)有重復(fù)的代碼塊出現(xiàn)時胶果,可以使用函數(shù)對代碼塊進(jìn)行封裝,使得重復(fù)部分只用一個函數(shù)就能實現(xiàn)饺谬,比如我們要計算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)

對,三個一樣的階乘計算代碼谣拣,相當(dāng)麻煩募寨,所以我們只需將重復(fù)的代碼封裝到一個函數(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)簡單。

定義函數(shù)

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

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

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

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

結(jié)果是7跨晴,8欧聘,12.

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

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

直接定義為*args

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

當(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被刪掉時凉敲,就會報錯UnboundLocalError: local variable 'a' referenced before assignment

因為原來a就是全局變量,如果你修改寺旺,就會變成局部變量爷抓,所以可以先聲明一下a的作用域。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阻塑,一起剝皮案震驚了整個濱河市蓝撇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌陈莽,老刑警劉巖渤昌,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異走搁,居然都是意外死亡独柑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進(jìn)店門私植,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忌栅,“玉大人,你說我怎么就攤上這事曲稼∷餍鳎” “怎么了?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵贫悄,是天一觀的道長瑞驱。 經(jīng)常有香客問我,道長窄坦,這世上最難降的妖魔是什么钱烟? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮嫡丙,結(jié)果婚禮上拴袭,老公的妹妹穿的比我還像新娘。我一直安慰自己曙博,他們只是感情好拥刻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著父泳,像睡著了一般般哼。 火紅的嫁衣襯著肌膚如雪吴汪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天蒸眠,我揣著相機(jī)與錄音漾橙,去河邊找鬼。 笑死楞卡,一個胖子當(dāng)著我的面吹牛霜运,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蒋腮,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼淘捡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了池摧?” 一聲冷哼從身側(cè)響起焦除,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎作彤,沒想到半個月后膘魄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竭讳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年瓣距,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片代咸。...
    茶點(diǎn)故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡蹈丸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呐芥,到底是詐尸還是另有隱情逻杖,我是刑警寧澤,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布思瘟,位于F島的核電站荸百,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏滨攻。R本人自食惡果不足惜够话,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望光绕。 院中可真熱鬧女嘲,春花似錦、人聲如沸诞帐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽停蕉。三九已至愕鼓,卻和暖如春钙态,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菇晃。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工册倒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人磺送。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓驻子,卻偏偏與公主長得像,于是被迫代替她去往敵國和親册着。 傳聞我的和親對象是個殘疾皇子拴孤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,576評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 一、為什么需要函數(shù) 有沒有發(fā)現(xiàn)鞭执,在前面的那么多的教程當(dāng)中司顿,我們沒有函數(shù)是不是也是可以寫的出來的,似乎沒有函數(shù)這個東...
    程序員歐陽閱讀 550評論 0 10
  • 函數(shù)函數(shù)是可以重復(fù)使用的程序片段兄纺,函數(shù)讓你命名一塊語句代碼大溜,允許你使用這個具體的函數(shù)名,在程序的任何地方估脆,任何次數(shù)...
    Mark學(xué)編程閱讀 260評論 0 0
  • 一钦奋、Python 函數(shù) 函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率疙赠。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù)付材,比如...
    無劍_君閱讀 474評論 0 0
  • 引:何謂“函數(shù)”?函數(shù)的作用是什么圃阳?怎么定義函數(shù)厌衔? 函數(shù),有另種情況會經(jīng)常用到 1捍岳、我們在寫代碼的時候富寿,可能會出來...
    爾果閱讀 483評論 0 0
  • 函數(shù)和對象 1、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念锣夹。通過函數(shù)可以封裝任意多條語句页徐,而且...
    道無虛閱讀 4,550評論 0 5