2018-08-29 Day8-函數基礎01

推薦一個網址:http://pythontutor.com/visualize.html#mode=edit
可以在線運行代碼,觀看執(zhí)行過程,很好用孝情。


沒有函數鱼蝉,出現(xiàn)的問題是什么?
1箫荡、同樣的代碼需要些多次魁亦。
2、一個功能的需求發(fā)生改變羔挡,需要修改多個地方洁奈。

  • 定義:函數就是對實現(xiàn)某一特定功能的代碼段的封裝。
  • 作用:提高代碼的復用度绞灼,讓代碼更簡潔利术。

一、函數分類

  • 內置函數:系統(tǒng)寫好的低矮,可以直接使用的函數印叁。例如 print函數、input函數军掂、sum函數等轮蜕。
  • 自定義函數:程序員自己創(chuàng)建的函數

二、函數的說明

1蝗锥、固定格式:
def 函數名(參數列表):
  函數的說明文檔
  函數體

說明文檔的格式:

def download(url):
    """
    在這里寫說明文檔(函數功能描述)
    :param url:下載數據的地址(對參數說明)
    :return:None(返回值的說明)
    """
2跃洛、 函數組成說明:
  • def:python中聲明函數的關鍵字。
  • 函數名:標識符终议,不能是關鍵字汇竭。(規(guī)范:PEP8規(guī)則,見名知義)
  • ():固定格式穴张,并且必須寫韩玩。
  • 參數列表(行參):參數名1,參數名2陆馁,參數名3.....(參數可以有多個找颓,也可以不寫)。
    參數是用來從函數的外面叮贩,向函數里面?zhèn)髦涤玫摹?/li>
  • 說明文檔:說明函數功能击狮。
  • 函數體:實現(xiàn)函數功能的代碼段。
    函數體中可能會包含return語句益老。
3彪蓬、初學者聲明函數的過程:

1、確定函數的功能 ===》2捺萌、根據功能確定函數的名字 ===》 3档冬、確定參數(確定函數需不需要從函數外面?zhèn)鬟f數據進來) ===》4、實現(xiàn)函數功能 ===》5、確定返回值

#寫一個函數酷誓,打印兩個數的和
def mysum(a,b):
    return a + b
print(mysum(1,2))

3
4披坏、函數的調用

格式:函數名(實參列表)
函數體只有調用的時候才會執(zhí)行,并且只能先聲明才能調用

  • 實參列表:就是給形參賦值的
5盐数、函數的調用過程(重要)

(1)棒拂、回到函數聲明的位置。
(2)玫氢、使用實參給形參賦值(傳參)帚屉。
(3)、執(zhí)行函數體漾峡。
(4)攻旦、將返回值返回給函數調用者。
(5)生逸、回到函數調用的地方牢屋,接著往后執(zhí)行。

練習:

#寫一個函數牺陶,打印一個整數的階乘
def jiecheng(n):
    product = 1
    for index in range(1,n+1):
        product *= index
    print(product)
jiecheng(5)

結果:
120
6、參數

實參:
(1)辣之、位置參數:實參的位置和形參一一對應掰伸。
(2)、關鍵字參數:通過 ‘ 形參名 = 實參 ’ 來傳參怀估。
func1(b='abc' , c=True , a=10)
(3)狮鸭、關鍵字參數和位置結合:
func1(10, b=2, c=4)

聲明函數時,參數賦予默認值:

  • 在聲明函數的時候多搀,可以參數賦默認值的歧蕉。(可以參數賦默認值)
  • 給部分參數賦默認值的時候,要求有默認值的參數必須放在參數列表的最后康铭。
  • 沒有默認值的參數必須傳參惯退,有默認值的參數,可以傳可以不傳从藤。
def func(a, b='a', c=True):
  print(a, b, c)
func(10)

結果:
10 a True

不定個數參數

格式:def 函數名(*形參)

  • python中通過在形參名前面加 * 催跪,讓這個形參變成一個元組,來讓這個形參可以接受多個實參夷野。
def mysum(*nums):
  print(nums, type(nums))
  sum = 0
  for item in nums:
    sum += item
  print(sum)
mysum(1,2,3,4,5)

結果:
(1, 2, 3, 4, 5) <class 'tuple'>
15

python不能直接約束一個變量的類型懊蒸。但是可以通過說明,來提示用戶調用參數的時候悯搔,參數的類型骑丸。

def func(name:str, age:int, study_id):
  print(name)

其中str、int有提示作用

7、函數的返回值
  • 返回值:函數的返回值就是return關鍵字后面表達式的結果通危。就是函數調用表達式的結果铸豁。
  • python中所有的函數都有返回值,默認為None(沒有return)黄鳍。
def Pass():
    pass
print(Pass())

結果:
None
  • return 關鍵字
    1推姻、確定返回值
    2、結束函數(函數中只要遇到return框沟,函數就直接結束)

什么時候需要返回值藏古?
只要實現(xiàn)函數的功能會產生新的數據,就通過返回值將新的數據返回忍燥,并不是打印它拧晕。

練習:

#練習:1、寫一個函數梅垄,統(tǒng)計一個列表中整數的個數
def count1(list):
    count = 0
    for index in list:
        if isinstance(index,int):
            count += 1
    return count
print(count1([1, 1.2, 3.4 ,34.5, 34, 34]))

# 2厂捞、將一個數字列表中所有的元素的值都變成原來的2倍
def list2(list_new):
    n = 0
    for item in list_new:
        list_new[n] *= 2
        n += 1
    return list_new
print(list2([2,3,4,5,6]))

# 3、獲取指定元素對應的下標
def list_1(list:list, item):
    index_list = []
    for index in range(len(list)):
        if list[index] == item:
            index_list.append(index)
    return index_list
print(list_1([1,3,2,2,3,3],3))
結果:
3
[4, 6, 8, 10, 12]
2
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末队丝,一起剝皮案震驚了整個濱河市靡馁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌机久,老刑警劉巖臭墨,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異膘盖,居然都是意外死亡胧弛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門侠畔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來结缚,“玉大人,你說我怎么就攤上這事软棺『旖撸” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵喘落,是天一觀的道長德崭。 經常有香客問我,道長揖盘,這世上最難降的妖魔是什么眉厨? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮兽狭,結果婚禮上憾股,老公的妹妹穿的比我還像新娘鹿蜀。我一直安慰自己,他們只是感情好服球,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布茴恰。 她就那樣靜靜地躺著,像睡著了一般斩熊。 火紅的嫁衣襯著肌膚如雪往枣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天粉渠,我揣著相機與錄音分冈,去河邊找鬼。 笑死霸株,一個胖子當著我的面吹牛雕沉,可吹牛的內容都是我干的。 我是一名探鬼主播去件,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼坡椒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尤溜?” 一聲冷哼從身側響起倔叼,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宫莱,沒想到半個月后丈攒,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡梢睛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年肥印,在試婚紗的時候發(fā)現(xiàn)自己被綠了识椰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绝葡。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖腹鹉,靈堂內的尸體忽然破棺而出藏畅,到底是詐尸還是另有隱情,我是刑警寧澤功咒,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布愉阎,位于F島的核電站,受9級特大地震影響力奋,放射性物質發(fā)生泄漏榜旦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一景殷、第九天 我趴在偏房一處隱蔽的房頂上張望溅呢。 院中可真熱鬧澡屡,春花似錦、人聲如沸咐旧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铣墨。三九已至室埋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伊约,已是汗流浹背姚淆。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留碱妆,地道東北人肉盹。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像疹尾,于是被迫代替她去往敵國和親上忍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內容

  • 函數和對象 1纳本、函數 1.1 函數概述 函數對于任何一門語言來說都是核心的概念窍蓝。通過函數可以封裝任意多條語句,而且...
    道無虛閱讀 4,581評論 0 5
  • 函數只定義一次繁成,但可能被執(zhí)行或調用任意次吓笙。JS函數是參數化的,函數的定義會包括一個稱為形參的標識符列表巾腕,這些參數在...
    PySong閱讀 856評論 0 0
  • 函數只定義一次面睛,但可能被執(zhí)行或調用任意次。JS函數是參數化的尊搬,函數的定義會包括一個稱為形參的標識符列表叁鉴,這些參數在...
    PySong閱讀 321評論 0 0
  • 農村婚禮習俗 1、定親 通常由男方請媒人提媒佛寿,備禮傳送庚帖幌墓,帖上有男子生辰八字。女方接帖后冀泻,將其同女子的八字合在一...
    貴州黃宗孟導演閱讀 737評論 0 1
  • 大三時候常侣,我老給人說,年輕人弹渔,多玩玩xbox胳施,還是很有必要的嘛,不要老是一頭扎在學習上不出來肢专,我們國家的現(xiàn)代化建設...
    李括閱讀 324評論 0 0