2019-03-15

  1. 什么是函數(shù)
    函數(shù)就是對實現(xiàn)某一特定功能的代碼段的封裝
    2 函數(shù)的分類:
    2.1 內(nèi)置函數(shù)呜叫,python已經(jīng)實現(xiàn)的函數(shù),可以直接調(diào)用
    2.2 自定義函數(shù)殿衰,程序員自己定義用來實現(xiàn)某種功能的函數(shù)
    3.函數(shù)的語法:
    def 函數(shù)名 (參數(shù)列表):
    函數(shù)體

說明:

def 聲明函數(shù)的關(guān)鍵字朱庆,固定寫法
函數(shù)名 - -要求:標識符、不能是關(guān)鍵字
規(guī)范:見名知意闷祥,所有字母小寫娱颊,多個單詞用下劃線—隔開,不能和系統(tǒng)內(nèi)置函數(shù)重名凯砍,否則會實現(xiàn)函數(shù)功能覆蓋
() - 固定寫法
參數(shù)列表--形參1箱硕,形參2.。悟衩。剧罩。形參n ,其實質(zhì)是變量名座泳,可以一個或者多個或者沒有
: - 固定寫法
函數(shù)體 - 必須和def保持一個縮進的代碼段
函數(shù)體分為函數(shù)說明文檔和實現(xiàn)函數(shù)功能的代碼段兩個部分

初學者聲明函數(shù)的步驟:

1 先確定函數(shù)的功能
2 根據(jù)功能確定函數(shù)名
3 確定參數(shù)惠昔,以及需要幾個參數(shù)
4 實現(xiàn)函數(shù)的功能
5 確定函數(shù)的返回值
特別注意的是,函數(shù)體在函數(shù)聲明的時候不會執(zhí)行挑势,調(diào)用函數(shù)的時候才會執(zhí)行函數(shù)體

函數(shù)的調(diào)用語法:
函數(shù)名(參數(shù)列表/實參列表)----函數(shù)名對應(yīng)的函數(shù)行必須是已經(jīng)聲明過的函數(shù)
實參列表 --這兒的參數(shù)叫實參镇防,實參是用來給形參賦值的,對應(yīng)幾個形參值就需要幾個實參值

例如 :寫一個函數(shù)潮饱。功能是計算兩個數(shù)的和来氧;

def sum1(num1,num2):
print(num1+num2)

sum1(1,2)

寫一個函數(shù)功能是求123...N的積

def factorial(n):

factorial 階乘的意思

  sum2 = 1
  for  num in range(1,n+1):
         sum2 *= num
   print(sum1)

factorial(5) # 結(jié)果就是120

函數(shù)調(diào)用過程:
函數(shù)在聲明的時候不會執(zhí)行函數(shù)體調(diào)用函數(shù)的時候才會執(zhí)行函數(shù)體
函數(shù)的調(diào)用過程:
1.先回到函數(shù)聲明的位置
2 用實參給形參賦值(傳遞參數(shù))
3 執(zhí)行函數(shù)體
4 執(zhí)行完函數(shù)體再回到函數(shù)調(diào)用的位置,接著往后執(zhí)行
例如:
def sum1(num1,num2):

num1,num2 = 1,2

  print(num1,num2)  # print(3)

sum1(1,2)
函數(shù)的參數(shù)

根據(jù)實參寫法,將參數(shù)分為位置參數(shù)和關(guān)鍵字參數(shù)

位置參數(shù):調(diào)用函數(shù)的時候參數(shù)的位置要一一對應(yīng)啦扬,保證每個參數(shù)都有值
關(guān)鍵字參數(shù):以形參1=值1中狂,形參2=值2 。考传。吃型。的方式來調(diào)用函數(shù),特別地僚楞,形參的順科可以和聲明的時候的形參的順序不同
例如:
def func1(a,b,c):
print(a,b,c)
位置參數(shù)
func1(1,2,2)
關(guān)鍵字參數(shù)
func1(a=1,b=2,c=2) # 這里a,b,c,可以打亂順序
混用寫法
func1(5勤晚,b=2,c=2) # 調(diào)用函數(shù)的時候,位置參數(shù)必須在關(guān)鍵字參數(shù)前面泉褐,否則會報錯

參數(shù)默認值
聲明函數(shù)的時候函數(shù)的形參可以設(shè)置默認值

參數(shù)默認值

聲明函數(shù)的時候函數(shù)的形參可以設(shè)置默認值.

注意:如果設(shè)置默認值的時候赐写,是一部分有默認值,一部分沒默認值膜赃,那么沒有默認值的參數(shù)

a 一定要寫在有默認值得參數(shù)的前面

b 有默認值的參數(shù)挺邀,調(diào)用的時候可以不傳參數(shù),沒有默認值的參數(shù)跳座,調(diào)用的時候必須傳參

c .當我們傳參的時候想要跳過某個或者某幾個有默認值的參數(shù)端铛,直接給后面的參數(shù)傳參的時候,

后面的參數(shù)必須使用關(guān)鍵字傳參

def func2(a,b=20,c=30):
print(a,b,c)

func2(100,200,30)
func2(100)
func2(a= 100,c=20)
參數(shù)類型說明

給參數(shù)設(shè)置默認值疲眷,默認是什么類型禾蚕,參數(shù)就是什么類型

以參數(shù)名:類型名的方式說明參數(shù)類型

def func3(nums:list,a,b):
print(a+b)

func3([],10,0)

練習:寫一個函數(shù),函數(shù)的功能是統(tǒng)計一個列表中指定元素的個數(shù)(類似count()方法的功能)

print('-----------')

def count1(a:list,b):
count1= 0
for i in a:
if i == b:
count1 +=1
print(count1)

count1([1,2,3],1)

不定長參數(shù)

在聲明函數(shù)的時候狂丝,在形參前加一個*,可以將這個形參變成元祖换淆,然后同時接受多個位置實參的值

原則上一個函數(shù)的參數(shù)中既可以有定長的,也可以有一個的不定長和兩個*的不定長几颜;

如果同時存帶一個參數(shù)和帶兩個*的參數(shù)倍试,帶一個的要放在帶兩個的前面

def f(a,*b):
print(a,b)

f(1,2,3,c=1,d=2)

def f(*num):
print(num)

f(12,230,90)

聲明函數(shù)的時候,在形參前加**,可以將這個形參變成字典蛋哭,然后可以同時接受多個關(guān)鍵字的值(關(guān)鍵字隨意命名)

def f(**num):
print(num)

f(a=12, b=230, c=90)

def yh_sum1(*num):
print(num)

yh_sum1(1)
yh_sum1(1,2)

注意:一個函數(shù)中可以同時又不定長參數(shù)和定長參數(shù)县习,一般情況下不定長參數(shù)要放在后面

如果出現(xiàn)定長參數(shù)放在不定長參數(shù)的后面,那么在不定長參數(shù)后面的定長參數(shù)調(diào)用的時候需要使用關(guān)鍵字參數(shù)傳參

def func1(a,*nums):
print(a,nums)

func1(1) #
func1(1,2) #

寫一個函數(shù)求多個數(shù)的和具壮,要求調(diào)用函數(shù)的時候既可以使用位置參數(shù)准颓,也可以使用關(guān)鍵字參數(shù)傳參

def sum1(num1,*num2):
sum2=0
for i in num1:
sum2 += int(i)
sum3=0
for key in num2:
sum3 += num2[key]
sum1= sum2 +sum3
print(sum1)

sum1(1,2)
sum1(1,2,num3=2,num4 = 3)
sum1(1,2,3,num = 100,)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市棺妓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炮赦,老刑警劉巖怜跑,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡性芬,警方通過查閱死者的電腦和手機峡眶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來植锉,“玉大人辫樱,你說我怎么就攤上這事】”樱” “怎么了狮暑?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辉饱。 經(jīng)常有香客問我搬男,道長,這世上最難降的妖魔是什么彭沼? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任缔逛,我火速辦了婚禮,結(jié)果婚禮上姓惑,老公的妹妹穿的比我還像新娘褐奴。我一直安慰自己,他們只是感情好于毙,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布敦冬。 她就那樣靜靜地躺著,像睡著了一般望众。 火紅的嫁衣襯著肌膚如雪匪补。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天烂翰,我揣著相機與錄音夯缺,去河邊找鬼。 笑死甘耿,一個胖子當著我的面吹牛踊兜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播佳恬,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼捏境,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了毁葱?” 一聲冷哼從身側(cè)響起垫言,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎倾剿,沒想到半個月后筷频,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚌成,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年凛捏,在試婚紗的時候發(fā)現(xiàn)自己被綠了担忧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡坯癣,死狀恐怖瓶盛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情示罗,我是刑警寧澤惩猫,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站鹉勒,受9級特大地震影響帆锋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜禽额,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一锯厢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脯倒,春花似錦实辑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悠反,卻和暖如春残黑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背斋否。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工梨水, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茵臭。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓疫诽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親旦委。 傳聞我的和親對象是個殘疾皇子奇徒,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

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

  • 一、函數(shù) 1.函數(shù)概述 1.1認識函數(shù) 需求:求圓的面積s = π * r ** 2c = math.sqrt(a...
    hollow_02f9閱讀 727評論 0 2
  • 一缨硝、函數(shù) 1.函數(shù)概述 1.1認識函數(shù) 需求:求圓的面積s = π * r ** 2c = math.sqrt(a...
    鄭元吉閱讀 328評論 0 0
  • 將軍很開心摩钙。 他覺得自己終于實現(xiàn)了愿望,縱橫沙場查辩,平定天下腺律。 雖然他縱橫的是馬場奕短。 “沖耙巳狻匀钧!”他騎著小黃馬,慷慨激...
    風兮兮__閱讀 458評論 0 4
  • 今天上午需要處理的事情比較多,有點小忙遣铝,正在處理文件的時候佑刷,電話鈴聲響起來。一看酿炸,是一個用戶芳美女的電話瘫絮。 “李哥...
  • 今天早上看微信,被一則新聞驚了一下填硕,“剛剛麦萤,建行突然宣布,付款方式巨變扁眯!銀行圈不淡定了壮莹!”是說建行已從深圳分行開始...
    Tracyseven閱讀 195評論 0 0