python函數(shù)學習筆記

一、定義函數(shù)

1糙及、定義函數(shù)

使用def語句详幽,依次寫出函數(shù)名、括號浸锨、括號中的參數(shù)和冒號:唇聘,然后在縮進塊中編寫函數(shù)體,函數(shù)的返回值用return語句返回柱搜。

def jia(a,b):
    n=a+b
    return n
print(jia(1,2))
2迟郎、空函數(shù)

實際上pass可以用來作為占位符,比如現(xiàn)在還沒想好怎么寫函數(shù)的代碼聪蘸,就可以先放一個pass宪肖,讓代碼能運行起來。

def empty():
    pass
3健爬、參數(shù)類型檢查--內(nèi)置函數(shù)isinstance()控乾,舉例:
def jia(a,b):
    if not isinstance(a,(int,float)):
        raise TypeError('a is wrong type')
    if not isinstance(b,(int,float)):
        raise TypeError('b is wrong type')
    n=a+b
    return(n)
print(jia('1',1))

小結(jié):函數(shù)執(zhí)行完畢也沒有return語句時,自動return None娜遵。
函數(shù)可以同時返回多個值蜕衡,但其實就是一個tuple。

二设拟、函數(shù)的參數(shù)

1慨仿、位置參數(shù)(明確規(guī)定函數(shù)需要幾個參數(shù))
def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
2久脯、默認參數(shù)(在位置參數(shù)的基礎上,為了以防調(diào)用是某個參數(shù)輸入值需要重復或缺失)

也可以不按順序提供部分默認參數(shù)镰吆。當不按順序提供部分默認參數(shù)時帘撰,需要把參數(shù)名寫上。
默認參數(shù)必須指向不變對象鼎姊!

def fang(x,n=2):
    s=1
    while n>0:
        s=s*x
        n=n-1   
    return s
print(fang(5,3))
3骡和、可變參數(shù)

參數(shù)前加*號相赁,可變參數(shù)允許你傳入0個或任意個參數(shù)相寇,這些可變參數(shù)在函數(shù)調(diào)用時自動組裝為一個tuple

#計算一組數(shù)字的平方和
def fang_he(*numbers):
    s=0
    for n in numbers:
        s=s+n*n
    return s
#print(fang_he([1,2,3]))  函數(shù)設置成可變參數(shù)時不能傳入list或tuple列表,否則會報錯
print(fang_he(1,2,3))
num=[1,3,5,7]
print(fang_he(*num))##參數(shù)前加*號钮科,*num表示把num這個list的所有元素作為可變參數(shù)傳進去
4唤衫、關鍵字參數(shù)

參數(shù)前加**號,關鍵字參數(shù)允許你傳入0個或任意個含參數(shù)名的參數(shù)绵脯,這些關鍵字參數(shù)在函數(shù)內(nèi)部自動組裝為一個dict

def person(name,age,**info):
    print('name:',name,'age:',age,'other:',info)
person('Adam', 45, gender='M', job='Engineer')
dw={'city':'shenzheng','job':'test engneer'}
person('almira',27,**dw)#**extra表示把extra這個dict的所有key-value用關鍵字參數(shù)傳入到函數(shù)的**info參數(shù)佳励,kw將獲得一個dict,注意kw獲得的dict是extra的一份拷貝蛆挫,對kw的改動不會影響到函數(shù)外的extra赃承。
5、命名關鍵字參數(shù)

限制關鍵字參數(shù)的名字悴侵,就可以用命名關鍵字參數(shù)瞧剖,例如,只接收city和job作為關鍵字參數(shù)

def person(name, age, *, city, job):##關鍵字參數(shù)**kw不同可免,命名關鍵字參數(shù)需要一個特殊分隔符*抓于,*后面的參數(shù)被視為命名關鍵字參數(shù),定義時缺少*,Python解釋器將無法識別位置參數(shù)和命名關鍵字參數(shù)
    print(name, age, city, job)
person('Jack', 24, city='Beijing', job='Engineer')
##如果函數(shù)定義中已經(jīng)有了一個可變參數(shù)浇借,后面跟著的命名關鍵字參數(shù)就不再需要一個特殊分隔符*
def person(name, age, *args, city, job):
    print(name, age, args, city, job)
##調(diào)用時缺少參數(shù)名捉撮,python解釋器會把參數(shù)均視為位置參數(shù)
6、參數(shù)組合(再議)

三妇垢、遞歸函數(shù)

在函數(shù)內(nèi)部巾遭,可以調(diào)用其他函數(shù)。如果一個函數(shù)在內(nèi)部調(diào)用自身本身闯估,這個函數(shù)就是遞歸函數(shù)灼舍。
編寫move(n, a, b, c)函數(shù),它接收參數(shù)n睬愤,表示3個柱子A片仿、B、C中第1個柱子A的盤子數(shù)量尤辱,

然后打印出把所有盤子從A借助B移動到C的方法(漢諾塔的移動圓盤疊放必須是小蓋大)

def move(n,a,b,c):
    if n==1:
        print(a,'---->',c)
    else:
        move(n-1,a,c,b) #借助C柱砂豌,將A柱上的n-1個圓盤移動到B柱
        print(a,'---->',c) #將第n個移動到C
        move(n-1,b,a,c)#借助A柱厢岂,將B 柱上的圓盤移到C柱
move(3,'A','B','C')

根據(jù)以下廖雪峰前輩文章學習記錄:

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市阳距,隨后出現(xiàn)的幾起案子塔粒,更是在濱河造成了極大的恐慌,老刑警劉巖筐摘,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卒茬,死亡現(xiàn)場離奇詭異,居然都是意外死亡咖熟,警方通過查閱死者的電腦和手機圃酵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馍管,“玉大人郭赐,你說我怎么就攤上這事∪贩校” “怎么了捌锭?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長罗捎。 經(jīng)常有香客問我观谦,道長,這世上最難降的妖魔是什么桨菜? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任豁状,我火速辦了婚禮,結(jié)果婚禮上雷激,老公的妹妹穿的比我還像新娘替蔬。我一直安慰自己,他們只是感情好屎暇,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布承桥。 她就那樣靜靜地躺著,像睡著了一般根悼。 火紅的嫁衣襯著肌膚如雪凶异。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天挤巡,我揣著相機與錄音剩彬,去河邊找鬼。 笑死矿卑,一個胖子當著我的面吹牛喉恋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼轻黑,長吁一口氣:“原來是場噩夢啊……” “哼糊肤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起氓鄙,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤馆揉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抖拦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體升酣,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年态罪,在試婚紗的時候發(fā)現(xiàn)自己被綠了噩茄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡向臀,死狀恐怖巢墅,靈堂內(nèi)的尸體忽然破棺而出诸狭,到底是詐尸還是另有隱情券膀,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布驯遇,位于F島的核電站芹彬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏叉庐。R本人自食惡果不足惜舒帮,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望陡叠。 院中可真熱鬧玩郊,春花似錦、人聲如沸枉阵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兴溜。三九已至侦厚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拙徽,已是汗流浹背刨沦。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留膘怕,地道東北人想诅。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親来破。 傳聞我的和親對象是個殘疾皇子裁眯,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

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

  • 第5章 函數(shù)和函數(shù)式編程 5.1 引言函數(shù)是組織好的,可重復使用的讳癌,用來實現(xiàn)單一穿稳,或相關聯(lián)功能的代碼段。函數(shù)...
    VIVAFT閱讀 961評論 0 5
  • 教程總綱:http://www.runoob.com/python/python-tutorial.html 進階...
    健康哥哥閱讀 2,036評論 1 3
  • http://python.jobbole.com/85231/ 關于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,583評論 1 118
  • Python 是一種相當高級的語言晌坤,通過 Python 解釋器把符合語法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機器碼...
    Python程序媛閱讀 1,914評論 0 3
  • 《 論語》擷英一一修身篇(八) 《論語》博大精深逢艘,循循善誘,親切易懂骤菠,生動形象它改。其中有許多修養(yǎng)道德,為人處世的至理...
    通達花紅閱讀 352評論 2 15