python基礎(chǔ)教學(xué)day9-總結(jié)

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

1.什么是函數(shù)

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

2.函數(shù)的分類

"""
系統(tǒng)函數(shù):系統(tǒng)自己定義的函數(shù)(不需要程序員去實(shí)現(xiàn)),程序員直接使用
例如:print(),input(),type()等等
自定義函數(shù):程序員自己實(shí)現(xiàn)的函數(shù)。
"""

3.聲明函數(shù)

"""
1)語(yǔ)法
def 函數(shù)名(參數(shù)列表):
函數(shù)體

2)說明
def - 聲明函數(shù)的關(guān)鍵字
函數(shù)名 - 是標(biāo)識(shí)符,不能是關(guān)鍵字 - (要求)
PEP8命名規(guī)范(所有字母小寫,多個(gè)單詞用下劃線隔開);
見名知義(根據(jù)名字能夠大概知道函數(shù)的功能)
() - 固定寫法
參數(shù)列表 - 這個(gè)參數(shù)又叫形參,以'變量名1,變量名2,....'的形式出現(xiàn)
形參可以沒有,也可以有多個(gè)
將函數(shù)外面的數(shù)據(jù)傳遞到函數(shù)里面
函數(shù)體 - 實(shí)現(xiàn)函數(shù)功能的一條或者多條語(yǔ)句
由函數(shù)說明文檔和實(shí)現(xiàn)函數(shù)功能的代碼組成
函數(shù)說明文檔必須寫在函數(shù)第一段,以3個(gè)雙引號(hào)開頭,3個(gè)雙引號(hào)結(jié)尾

3)初學(xué)者聲明函數(shù)的過程
a.確定函數(shù)功能
b.根據(jù)功能確定函數(shù)的名字
c.確定形參:看實(shí)現(xiàn)函數(shù)的功能需不需要從函數(shù)外面?zhèn)鲾?shù)據(jù),需要數(shù)據(jù)就對(duì)應(yīng)一個(gè)參數(shù)
d.實(shí)現(xiàn)函數(shù)的功能
e.確定返回值
!?。。?!注意(重要):聲明函數(shù)的時(shí)候不會(huì)執(zhí)行函數(shù)體!只有調(diào)用函數(shù)的時(shí)候才會(huì)執(zhí)行函數(shù)體。
"""

4)函數(shù)的調(diào)用
"""
調(diào)用函數(shù)就是使用函數(shù)
1)語(yǔ)法
函數(shù)名(實(shí)參列表) - 函數(shù)調(diào)用表達(dá)式

2)說明
函數(shù)名 - 已經(jīng)聲明過的函數(shù)的函數(shù)名
() - 固定寫法
實(shí)參列表 - 實(shí)參是給形參賦值的
實(shí)參例如:數(shù)據(jù),已經(jīng)賦值過的變量,運(yùn)算表達(dá)式(不能是賦值語(yǔ)句)...

3)函數(shù)調(diào)用過程(重要?。。。。。?br> 第一步:回到函數(shù)聲明的位置
第二步:傳參;用實(shí)參給形參賦值(注意:傳參必須保證每個(gè)參數(shù)都有值,否則會(huì)報(bào)錯(cuò))
第三步:執(zhí)行函數(shù)體
第四步:執(zhí)行完函數(shù)體,回到函數(shù)調(diào)用的位置接著往后執(zhí)行
"""
def nums(n):
if n > 8:
print('調(diào)用函數(shù)成功') # 函數(shù)可以調(diào)用多次
nu ms(18.2)

寫一個(gè)函數(shù)求兩數(shù)的和
def sum1(num1, num2): # 函數(shù)聲明前后跨兩行
print(num1 + num2)
sum1('a', 'c')

練習(xí)1:求3個(gè)數(shù)的最大值
def max_nums(num1, num2, num3):
max_num = num1
if max_num < num2:
max_num = num2
if max_num < num3:
max_num = num3
print('3個(gè)數(shù)中最大的值是:%d' % max_num)

max_nums(-7, -3, -1)
練習(xí)2:寫一個(gè)函數(shù)判斷一個(gè)字符串中是否有中文字符
def Chinese_char(str1):
for item in str1:
if '\u4e00'<= item <= '\u9fa5':
print('%s: 中有中文字符' % str1)
break
else:
print('%s: 中無中文字符' % str1)
Chinese_char('abcde你好')

練習(xí)3:寫一個(gè)函數(shù)實(shí)現(xiàn)將一個(gè)數(shù)據(jù)插入到列表最前面
def insert_front(list1, item):
list1.insert(0, item)
print(list1)
nums = [12, 34, 56, 78]
insert_front(nums, -100)

def nums(x):
print(x)
nums() # TypeError: nums() missing 1 required positional argument: 'x'

函數(shù)說明文檔

def name(x, y):
"""
1)函數(shù)功能說明:求兩個(gè)數(shù)的和
:param x: 參數(shù)說明,要求是一個(gè)數(shù)字 ,范圍0~255, 決定顏色值
:param y: 參數(shù)說明,要求是字符串
:return: 返回值說明,返回是一個(gè)數(shù)字,是x和y的和
"""
pass
name()

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

1.位置參數(shù)和關(guān)鍵字參數(shù)(實(shí)參)

"""
1)位置參數(shù):調(diào)用函數(shù)的時(shí)候,讓實(shí)參和形參的位置一一對(duì)應(yīng)
2)關(guān)鍵字參數(shù):調(diào)用函數(shù)的時(shí)候,以"形參=實(shí)參"的形式傳參,位置可以亂
注意:1.不管使用哪種方式傳參,要保證每個(gè)參數(shù)都有值
2.如果既有位置參數(shù)又有關(guān)鍵字參數(shù),位置參數(shù)一定要在關(guān)鍵字參數(shù)前面
"""

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

"""
聲明函數(shù)的時(shí)候可以給參數(shù)設(shè)置默認(rèn)值,以'形參=值'的方式來設(shè)置;
設(shè)置了默認(rèn)值的參數(shù),在調(diào)用函數(shù)的時(shí)候可以不用傳參
如果有的參數(shù)有默認(rèn)值,有的參數(shù)沒有默認(rèn)值;有默認(rèn)值的參數(shù)必須放在沒有默認(rèn)值參數(shù)的后面
"""

3)參數(shù)類型說明

"""
1)賦默認(rèn)值
2)以'形參:類型名'的方式說明類型
注意:兩種方式不能混用,只能單獨(dú)使用。
對(duì)參數(shù)類型進(jìn)行說明可以引導(dǎo)函數(shù)調(diào)用者正確的傳參;也可以讓實(shí)現(xiàn)函數(shù)體的時(shí)候有代碼提示。
"""

def func3(x, y, z=0):
print(x, y, z)

4.不定長(zhǎng)參數(shù)

"""
1)1顆不定長(zhǎng)參數(shù)
聲明函數(shù)的時(shí)候,在參數(shù)前加
,那么這個(gè)參數(shù)就會(huì)變成不定長(zhǎng)參數(shù),可以同時(shí)接收多個(gè)實(shí)參
(不定長(zhǎng)參數(shù)的實(shí)質(zhì)就是一個(gè)元組,接收到的實(shí)參就是元組中的元素)
帶一個(gè)*的不定長(zhǎng)參數(shù),調(diào)用的時(shí)候需要使用位置參數(shù),不能使用關(guān)鍵字參數(shù)(使用不了)

注意:參數(shù)中帶的參數(shù)需要放在不帶參數(shù)的后面

2)2顆不定長(zhǎng)參數(shù)
聲明函數(shù)的時(shí)候,在參數(shù)前加
,那么這個(gè)參數(shù)就會(huì)變成不定長(zhǎng)參數(shù),可以同時(shí)接收多個(gè)實(shí)參
(不定長(zhǎng)參數(shù)的實(shí)質(zhì)就是一個(gè)字典,調(diào)用的時(shí)候必須使用關(guān)鍵字參數(shù))
注意:很少單獨(dú)使用,經(jīng)常和帶1顆
的一起施工
注意:參數(shù)中帶的參數(shù)需要放在不帶參數(shù)的后面
帶一個(gè)的需要放在帶兩個(gè)的前面
def func(*args, **kwargs):
pass
面試題:保證傳多個(gè)值,既可以用位置參數(shù)傳參,又可以用關(guān)鍵參數(shù)傳參。
"""

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容