day10-函數(shù)基礎(chǔ)

1.函數(shù)的聲明

1)什么是函數(shù)

函數(shù)就是對(duì)實(shí)現(xiàn)某一特定功能的代碼的封裝

2)函數(shù)的分類(lèi)

按照函數(shù)是誰(shuí)來(lái)聲明的將函數(shù)分為系統(tǒng)函數(shù)和自定義函數(shù)

  • 系統(tǒng)函數(shù):由系統(tǒng)聲明,程序員直接使用的函數(shù)。例如:print/input/hex/length/sum/max/min等
  • 自定義函數(shù):由程序員自己聲明的函數(shù)

3)函數(shù)的聲明(定義)

a.語(yǔ)法:

def 函數(shù)名(參數(shù)列表):
函數(shù)說(shuō)明文檔
函數(shù)體

b.說(shuō)明

def - python聲明函數(shù)的關(guān)鍵字叫潦,固定寫(xiě)法
函數(shù)名 - 程序員自己命名嫩痰;
要求:是標(biāo)識(shí)符君纫,不能是關(guān)鍵字
規(guī)范:PEP命名規(guī)范钉稍;見(jiàn)名知義(看到函數(shù)名大概知道函數(shù)的功能)拦止;不能使用系統(tǒng)函數(shù)名或者類(lèi)名
() - 固定寫(xiě)法
參數(shù)列表 - 這兒的參數(shù)叫形參屠尊;以'變量名1旷祸,變量名2,...'的形式存在
它的作用是將函數(shù)外面的數(shù)據(jù)傳遞到函數(shù)里面
: - 固定寫(xiě)法
函數(shù)說(shuō)明文檔 - 使用三個(gè)雙引號(hào)引起來(lái)的文本信息
函數(shù)體 - 和def保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句讼昆。就是實(shí)現(xiàn)函數(shù)功能的代碼段

c.初學(xué)者聲明函數(shù)的步驟

1.確定函數(shù)功能
2.根據(jù)功能確定函數(shù)名
3.確定函數(shù)的參數(shù)托享;看實(shí)現(xiàn)函數(shù)的功能需不需要額外的數(shù)據(jù),需要幾個(gè)
4.實(shí)現(xiàn)函數(shù)的功能
5.寫(xiě)函數(shù)說(shuō)明文檔

d.注意:函數(shù)在聲明的時(shí)候不會(huì)執(zhí)行函數(shù)體,調(diào)用的時(shí)候才會(huì)執(zhí)行(重要闰围!)

寫(xiě)一個(gè)函數(shù)赃绊,求兩個(gè)數(shù)的和

def ysy_sum(num1, num2):
    """
    功能說(shuō)明:求兩個(gè)數(shù)的和
    :param num1: 參數(shù)說(shuō)明  - 數(shù)字
    :param num2: 參數(shù)說(shuō)明  - 數(shù)字
    :return: 返回和的值
    """
    sum1 = num1 + num2
    return sum1


print(ysy_sum(1, 2))

練習(xí):寫(xiě)一個(gè)函數(shù),打印指定字符串中所有的中文字符

def c_char(str1):
    """
    功能說(shuō)明:求指定字符串中所有的中文字符
    :param str1: 指定的字符串
    :return: 返回一個(gè)包含所有中文的新的字符串
    """
    str2 = ''
    for chars in str1:
        if '\u4e00' <= chars <= '\u9fa5':
            str2 += chars
    return str2


print(c_char('as12哈哈9你好1q'))

4)函數(shù)的調(diào)用

a.語(yǔ)法

函數(shù)(實(shí)參列表)

b.說(shuō)明

函數(shù)名 - 已經(jīng)聲明過(guò)的函數(shù)名
() - 固定寫(xiě)法
實(shí)參列表 - 以‘值1羡榴,值2碧查,值3,...’的形式存在校仑;實(shí)參是用來(lái)給形參賦值的

c.注意:同一個(gè)函數(shù)可以調(diào)用多次

2.函數(shù)的調(diào)用

1)函數(shù)的調(diào)用過(guò)程

1)回到函數(shù)聲明的位置
2)用實(shí)參給形參賦值(傳參)忠售;傳參的時(shí)候要保證每個(gè)參數(shù)都有值
3)執(zhí)行函數(shù)體
4)確定函數(shù)的返回值
5)回到函數(shù)調(diào)用的位置,接著往后執(zhí)行迄沫。

def ysy_sum(num1, num2):
    # num1 = 1, num2 = 2
    print(num1 + num2)


ysy_sum(1, 2)

3.函數(shù)的參數(shù)

1)參數(shù)分類(lèi)

1.位置參數(shù)和關(guān)鍵字參數(shù)(實(shí)參分類(lèi))

a.位置參數(shù):讓實(shí)參和形參一一對(duì)應(yīng)稻扬,來(lái)給不同的形參賦不同的值
b.關(guān)鍵字參數(shù):以'參數(shù)名1=值1款熬,參數(shù)名2=值2王悍,...'的形式來(lái)傳參
注意:1.如果位置參數(shù)和關(guān)鍵字參數(shù)同時(shí)存在的時(shí)候,位置參數(shù)必須放在關(guān)鍵字參數(shù)的前面
2.如果希望跳過(guò)前面某個(gè)闻坚、某幾個(gè)參數(shù)尘吗,直接給后面的參數(shù)賦值逝她,就必須使用關(guān)鍵字參數(shù)

def func1(x, y, z):
    print(x, y, z)


# 位置參數(shù)
func1(1, 2, 3)

# 關(guān)鍵字參數(shù)
func1(x=1, y=1, z=1)
func1(y=2, x=1, z=3)

# 位置參數(shù)+關(guān)鍵字參數(shù)
func1(3, z=2, y=1)

2.參數(shù)默認(rèn)值 - 形參

聲明函數(shù)的時(shí)候,可以給形參賦默認(rèn)值摇予;已經(jīng)有默認(rèn)值的參數(shù)在調(diào)用的時(shí)候可以不用傳參

注意:沒(méi)有默認(rèn)值的參數(shù)必須放在有默認(rèn)值參數(shù)的前面

def func2(x, y=2, z=1):
    print(x, y, z)


func2(1, z=2)

3.參數(shù)類(lèi)型說(shuō)明

a.給參數(shù)設(shè)置默認(rèn)值汽绢,默認(rèn)值的類(lèi)型就是參數(shù)類(lèi)型
b.形參:類(lèi)型名

4.不定長(zhǎng)參數(shù) - 參數(shù)個(gè)數(shù)不確定

a.在參數(shù)名前加吗跋,那么這個(gè)參數(shù)就會(huì)變成一個(gè)元組去接收多個(gè)參數(shù)侧戴,調(diào)用的時(shí)候不能使用關(guān)鍵字參數(shù)傳參
b.在參數(shù)名前加
*,那么這個(gè)參數(shù)就會(huì)變成一個(gè)字典去接收多個(gè)參數(shù)跌宛,調(diào)用的時(shí)候只能使用關(guān)鍵字參數(shù)傳參

# 計(jì)算多個(gè)數(shù)的和
def ysy_sum(*num):
    print(sum(num))


ysy_sum(1, 2, 3)


def func5(x, *y):
    print(x)
    print(y)


func5('ab', 1, '1s')


def func6(**num):
    print(num)


func6()
# func6(1)    # TypeError: func6() takes 0 positional arguments but 1 was given
func6(x=10)
func6(x=1, y=2)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酗宋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子疆拘,更是在濱河造成了極大的恐慌蜕猫,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哎迄,死亡現(xiàn)場(chǎng)離奇詭異回右,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)漱挚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)翔烁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人旨涝,你說(shuō)我怎么就攤上這事蹬屹。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵慨默,是天一觀(guān)的道長(zhǎng)贩耐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)厦取,這世上最難降的妖魔是什么潮太? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮蒜胖,結(jié)果婚禮上消别,老公的妹妹穿的比我還像新娘。我一直安慰自己台谢,他們只是感情好寻狂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著朋沮,像睡著了一般蛇券。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上樊拓,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天纠亚,我揣著相機(jī)與錄音,去河邊找鬼筋夏。 笑死蒂胞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的条篷。 我是一名探鬼主播骗随,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赴叹!你這毒婦竟也來(lái)了鸿染?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤乞巧,失蹤者是張志新(化名)和其女友劉穎涨椒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體绽媒,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚕冬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了是辕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片囤热。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖免糕,靈堂內(nèi)的尸體忽然破棺而出赢乓,到底是詐尸還是另有隱情忧侧,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布牌芋,位于F島的核電站蚓炬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏躺屁。R本人自食惡果不足惜肯夏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望犀暑。 院中可真熱鬧驯击,春花似錦、人聲如沸耐亏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)广辰。三九已至暇矫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間择吊,已是汗流浹背李根。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留几睛,地道東北人房轿。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像所森,于是被迫代替她去往敵國(guó)和親囱持。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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

  • 前言回顧 1.函數(shù)的定義:函數(shù)就是對(duì)實(shí)現(xiàn)某一特定功能的代碼塊的封裝2.函數(shù)的聲明: def 函數(shù)名(形參列表):函...
    不語(yǔ)sun閱讀 177評(píng)論 0 0
  • """author = 陳俊龍""" ============函數(shù)的返回值============== 1.什么是...
    陳俊龍1995閱讀 125評(píng)論 0 0
  • 函數(shù)和對(duì)象 1必峰、函數(shù) 1.1 函數(shù)概述 函數(shù)對(duì)于任何一門(mén)語(yǔ)言來(lái)說(shuō)都是核心的概念洪唐。通過(guò)函數(shù)可以封裝任意多條語(yǔ)句钻蹬,而且...
    道無(wú)虛閱讀 4,543評(píng)論 0 5
  • 一吼蚁、函數(shù)的返回值 返回值就是函數(shù)返回給函數(shù)調(diào)用者的值(概念) 返回值就是return后面的值(語(yǔ)法) 返回值就是函...
    毋望閱讀 104評(píng)論 0 0
  • 第5章 函數(shù)和函數(shù)式編程 5.1 引言函數(shù)是組織好的,可重復(fù)使用的问欠,用來(lái)實(shí)現(xiàn)單一肝匆,或相關(guān)聯(lián)功能的代碼段。函數(shù)...
    VIVAFT閱讀 948評(píng)論 0 5