python-day7函數(shù)

1函數(shù)

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

2.作用:封裝(將功能綁定在一個(gè)函數(shù)中筷厘,想要使用這個(gè)功能的時(shí)候辱揭,直接調(diào)用函數(shù))

3.怎么聲明函數(shù):

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

  • def:是Python中聲明函數(shù)的關(guān)鍵字
  • 函數(shù)名:標(biāo)識(shí)符掷邦。 PEP8的命名格式。見(jiàn)名知義(看到函數(shù)名大概知道函數(shù)的功能)
  • 函數(shù)說(shuō)明:對(duì)函數(shù)的功能和參數(shù)以及返回值進(jìn)行說(shuō)明
  • ():是固定格式
  • 參數(shù)列表:(形參列表) 參數(shù)名1,參數(shù)名2舅踪,參數(shù)名3...。
    參數(shù)的功能是用來(lái)接收從函數(shù)外部傳到函數(shù)內(nèi)部的數(shù)據(jù)
  • 函數(shù)體:實(shí)現(xiàn)函數(shù)功能的代碼塊良蛮,可能會(huì)包含一個(gè)return語(yǔ)句

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

a.確定函數(shù)的功能
b.根據(jù)功能確定函數(shù)名
c.確定參數(shù):

  • 確定需不需要參數(shù)
  • 確定需要幾個(gè)參數(shù)
  • 看實(shí)現(xiàn)函數(shù)的功能需不需要從外面?zhèn)鲾?shù)據(jù)到函數(shù)里面
    d.實(shí)現(xiàn)函數(shù)的功能
    e.確定返回值

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

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

  • 函數(shù)名:調(diào)用的函數(shù)一定是已經(jīng)聲明過(guò)的抽碌,想要使用什么功能就調(diào)用對(duì)應(yīng)的函數(shù)
  • 實(shí)參列表:實(shí)參是用來(lái)給形參賦值的

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

1.回到函數(shù)聲明的地方
2.使用實(shí)參給形參賦值
3.執(zhí)行函數(shù)體
4.函數(shù)體執(zhí)行完成后,回到函數(shù)調(diào)用的位置

注意:

1.函數(shù)只有在調(diào)用的時(shí)候才會(huì)執(zhí)行
2.函數(shù)調(diào)用的時(shí)候一定要保證每個(gè)形參都有值
3.一個(gè)函數(shù)可以調(diào)用多次

小練習(xí):寫一個(gè)函數(shù)計(jì)算兩個(gè)數(shù)的和

def my_sum(number1, number2):
    """
    (這兒寫函數(shù)的功能描述)求兩個(gè)數(shù)的和
    :param number1: 提供第一個(gè)數(shù)决瞳,int類型
    :param number2: 提供第二個(gè)數(shù)货徙,int類型
    :return: 對(duì)返回值進(jìn)行說(shuō)明
    """
    # my_sum = number1 + number2
    print(number1 + number2)

# 函數(shù)的調(diào)用一定是在函數(shù)的聲明后
my_sum(99, 1)
結(jié)果:
100

小練習(xí)2:聲明一個(gè)函數(shù),功能是打印10個(gè)*

# 調(diào)用這個(gè)函數(shù)

def print_star():

    print('*' * 10)
print_star()
print_star()
print_star()
結(jié)果:
**********
**********
**********

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

參數(shù)的作用:從函數(shù)的外面給函數(shù)傳值

1.位置參數(shù)

傳參的時(shí)候皮胡,實(shí)參按順序給形參賦值

def func1(a, b, c):
    print(a, b, c)
func1(10, 20,30)
結(jié)果:
10 20 30

2.關(guān)鍵字參數(shù)

調(diào)用函數(shù)的時(shí)候:函數(shù)名(參數(shù)=值)

def func1(a, b, c):
    print(a, b, c)
func1(b=20, a=10, c=30)
結(jié)果:
10 20 30

說(shuō)明:位置參數(shù)和關(guān)鍵字參數(shù)可以混著來(lái)

3.參數(shù)的默認(rèn)值

python中函數(shù)聲明的時(shí)候參數(shù)可以設(shè)置默認(rèn)值,有默認(rèn)值的參數(shù)必須放在參數(shù)列表后邊3占铡!屡贺!
調(diào)用參數(shù)有默認(rèn)值的函數(shù)蠢棱,有默認(rèn)值的參數(shù)可以傳參也可以不傳參

def func2(a, b=10, c=100):
    print(a, b, c)

func2(10, 20, 30)
func2(10)
結(jié)果:
10 20 30
10 20 30
10 10 100

4.參數(shù)個(gè)數(shù)不定

參數(shù)個(gè)數(shù)不確定的時(shí)候锌杀,就在聲明函數(shù)的時(shí)候,形參的前面加一個(gè)*號(hào)泻仙,將形參變成元祖
調(diào)用函數(shù)的時(shí)候糕再,這個(gè)參數(shù)會(huì)將對(duì)應(yīng)的實(shí)參作為元祖的元素保存起來(lái)

寫一個(gè)函數(shù),求多個(gè)數(shù)的和

def my_sum(*numbers):
    print(numbers)
    sum1 = 0
    for item in numbers:
        sum1 += item
    print(sum1)

my_sum(10, 20, 30)
結(jié)果:
60

注意:參數(shù)個(gè)數(shù)不定玉转,可以是形參中的一部分是不定的
個(gè)數(shù)不確定的參數(shù)要放到參數(shù)的最后

def func1(char, *numbers):
    print(char, numbers)

func1('a', 10, 20, 39)

# 參數(shù)個(gè)數(shù)不定突想,也可以不傳參,對(duì)應(yīng)的參數(shù)的值就是一個(gè)空的元祖
func1('a')
結(jié)果:
a (10, 20, 39)
a ()

習(xí)題

  1. 編寫?個(gè)函數(shù)究抓,求1+2+3+...+N
def my_sum1(number):
    sum1 = 0
    for item in range(number):
        item += 1
        sum1 += item
    print(sum1)
my_sum1(5)
結(jié)果:
15
  1. 編寫?個(gè)函數(shù)猾担,求多個(gè)數(shù)中的最?值
def max_num1(*numbers):
    # print(numbers)
    max1 = numbers[0]
    for item in numbers:
        if item > max1:
            max1 = item
    print(max1)
max_num1(10,50,66,-1,-99)
結(jié)果:
66

3.編寫?個(gè)函數(shù),實(shí)現(xiàn)搖?子的功能刺下,打印n個(gè)?子的點(diǎn)數(shù)和

def points(a):
    import random
    sum = 0
    for sum1 in range(a):
        number = random.randint(1, 6)
        print('點(diǎn)數(shù)為:', number)
        sum += number
    print(sum)
points(5)
結(jié)果:
點(diǎn)數(shù)為: 6
點(diǎn)數(shù)為: 1
點(diǎn)數(shù)為: 1
點(diǎn)數(shù)為: 3
點(diǎn)數(shù)為: 1
12

4.編寫?個(gè)函數(shù)绑嘹,交換指定字典的key和value。 例如:{'a':1, 'b':2, 'c':3} ---> {1:'a', 2:'b', 3:'c'}

def change(dict1):
    dict2 = {}
    for key, value in dict1.items():
        dict2[value] = key
    print(dict2)
change({'a':1, 'b':2, 'c':3})
結(jié)果:
{1: 'a', 2: 'b', 3: 'c'}

5.編寫一個(gè)函數(shù)怠李,三個(gè)數(shù)中的最大值

def max_num1(a, b, c):
    # print(numbers)
    list = [a, b, c]
    max1 = list[0]
    for item in list:
        if item > max1:
            max1 = item
    print(max1)
max_num1(10,50,66)
結(jié)果:
66

6 編寫?個(gè)函數(shù)圾叼,提取指定字符串中的所有的字母,

def print_letters(str1):
    str2 = ''
    for x in str1:
        if 'a' <= x <= 'z' or 'A' <= x <= 'Z':
            str2 += x
    print(str2)
print_letters('12a&bc12d--')
結(jié)果:
abcd

7.寫?個(gè)函數(shù)捺癞,求多個(gè)數(shù)的平均值

def avg(*numbers):

    sum1 = 0
    for i in numbers:

        sum1 += i
    print(sum1 / len(numbers))
avg(10,20,30)
結(jié)果:
20.0

8.寫?個(gè)函數(shù)夷蚊,默認(rèn)求10的階層,也可以求其他數(shù)的階層

def layer(number):
    product = 1
    for x in range(number):
        if x > 0:
            product *= x
    print(product)
layer(10)
結(jié)果:
362880

9.寫一個(gè)函數(shù)髓介,可以對(duì)多個(gè)數(shù)進(jìn)?不同的運(yùn)算
例如: operation('+', 1, 2, 3) ---> 求 1+2+3的結(jié)果
operation('-', 10, 9) ---> 求 10-9的結(jié)果
operation('', 2, 4, 8, 10) ---> 求 24810的結(jié)構(gòu)

def operation(str, *numbers):
    if str == '+':
        sum1 = 0
        for i in numbers:
            sum1 += i
        print(sum1)
    elif str == '-':
        for i in numbers:
            sum1 = numbers[0]-numbers[1]
        print(sum1)
    elif str == '*':
        sum1 = 1
        for i in numbers:
            sum1 *= i
        print(sum1)
operation('-', 10, 9)
結(jié)果:
1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末惕鼓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子唐础,更是在濱河造成了極大的恐慌箱歧,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件一膨,死亡現(xiàn)場(chǎng)離奇詭異呀邢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)豹绪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門价淌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人瞒津,你說(shuō)我怎么就攤上這事蝉衣。” “怎么了巷蚪?”我有些...
    開(kāi)封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵病毡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我屁柏,道長(zhǎng)啦膜,這世上最難降的妖魔是什么有送? 我笑而不...
    開(kāi)封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮功戚,結(jié)果婚禮上娶眷,老公的妹妹穿的比我還像新娘似嗤。我一直安慰自己啸臀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布烁落。 她就那樣靜靜地躺著乘粒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪伤塌。 梳的紋絲不亂的頭發(fā)上灯萍,一...
    開(kāi)封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音每聪,去河邊找鬼旦棉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛药薯,可吹牛的內(nèi)容都是我干的绑洛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼童本,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼真屯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起穷娱,我...
    開(kāi)封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绑蔫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后泵额,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體配深,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年嫁盲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了篓叶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡亡资,死狀恐怖澜共,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锥腻,我是刑警寧澤嗦董,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站瘦黑,受9級(jí)特大地震影響京革,放射性物質(zhì)發(fā)生泄漏奇唤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一匹摇、第九天 我趴在偏房一處隱蔽的房頂上張望咬扇。 院中可真熱鬧,春花似錦廊勃、人聲如沸懈贺。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)梭灿。三九已至,卻和暖如春冰悠,著一層夾襖步出監(jiān)牢的瞬間堡妒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工溉卓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留皮迟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓桑寨,卻偏偏與公主長(zhǎng)得像伏尼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子西疤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

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

  • 〇烦粒、前言 本文共108張圖,流量黨請(qǐng)慎重代赁! 歷時(shí)1個(gè)半月扰她,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍。 ...
    Raxxie閱讀 18,918評(píng)論 17 410
  • 一芭碍、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,782評(píng)論 2 16
  • 函數(shù)和對(duì)象 1徒役、函數(shù) 1.1 函數(shù)概述 函數(shù)對(duì)于任何一門語(yǔ)言來(lái)說(shuō)都是核心的概念。通過(guò)函數(shù)可以封裝任意多條語(yǔ)句窖壕,而且...
    道無(wú)虛閱讀 4,525評(píng)論 0 5
  • 很久沒(méi)有與一個(gè)男生聊天這么開(kāi)心了吧忧勿,希望這次有戲吧,講真我也挺期待的瞻讽,都想減肥了(HAhhhha)現(xiàn)在的狀態(tài)有種“...
    清風(fēng)徐來(lái)_閱讀 147評(píng)論 0 0
  • 大家好,我是IT修真院成都分院第7期的學(xué)員韓建名烦磁,一枚正直純潔善良的WEB前端程序員养匈。 1.背景介紹 是Javas...
    inh_閱讀 614評(píng)論 0 1