函數(shù)的簡單應(yīng)用

1.函數(shù)的簡單應(yīng)用

公共:

? ? str, int,float,bool,bytes,list,set,tuple, dict,max,min,len,print,input

特定類型的函數(shù):

? Math :? pow(), sqrt().

str:? find(), split(), replace()..

random:? random()

os:? listdir(),remove()

os.path:? isfile() , isdir()

函數(shù)本質(zhì)就是將重復(fù)的代碼封裝在一塊,當(dāng)使用時(shí)可被重復(fù)地調(diào)用。

定義函數(shù)的語法:

? ? def函數(shù)名 (參數(shù)列表):

功能語句

? ? ? ? [return表達(dá)式]? #如果函數(shù)有返回值,則使用 return

如:

? ? ? def? sub(x, y):? ? ? #定義時(shí),函數(shù)的參數(shù)名稱之為 形參

? ? ? ? ? ? ? return x + y? ? #返回兩個(gè)數(shù)的和

? ? ? s = sub(10, 20)? # s : 30 ,調(diào)用時(shí),函數(shù)的參數(shù)稱之為 實(shí)參

注意: 編寫規(guī)范,函數(shù)的前后應(yīng)該空兩行

函數(shù)中是否存在參數(shù),都必須存在 小括號 ( )

函數(shù)中存在while循環(huán)時(shí),如果在循環(huán)語句有 return語句,則會中斷循環(huán)

函數(shù)名的命名, 跟變量名的命名規(guī)則是一樣的

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

調(diào)用函數(shù)時(shí),可以使用函數(shù)的形參名來傳值。

如果使用形參名指定參數(shù)值,則所有參數(shù)必須統(tǒng)一, 除了帶默認(rèn)值的參數(shù)

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

? ? ? 是在形參名后 設(shè)置默認(rèn)值:def xx(ns=10)

有默認(rèn)值的參數(shù),在調(diào)用時(shí)可以不用提供實(shí)參

4.不定長度的參數(shù)

? ? ? *args? :? tuple元組類型

? ? ? **kwargs:? dict字典

? ? ? 在函數(shù)的參數(shù)列表中,*args和**kwargs一般要放在普通的參數(shù)的后面,

? ? ? 如果在前面的話,普通參數(shù)必須使用關(guān)鍵參數(shù)傳值(參數(shù)名 =參數(shù)值)。

5.匿名函數(shù)

? 函數(shù)名? = lambda參數(shù)列表:表達(dá)式,函數(shù)的返回值即是表達(dá)式值

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

6.偏函數(shù)

- functools.partial(現(xiàn)有的函數(shù)名, 關(guān)鍵參數(shù)賦值表達(dá)式),返回函數(shù)名

表象: 偏函數(shù)即是現(xiàn)有函數(shù)的分身,區(qū)別是關(guān)鍵參數(shù)值不同。

7.作用域

只針對模塊、類,函數(shù)中的變量,這些變量一般只作用在如函數(shù)的局部。

如果想將局變提升為全局:

? ? ? ? global局部變量名

8. Python的異常處理

之前的代碼經(jīng)常會出現(xiàn)的異常:

? ? ? TypeError, KeyError,IndexError、 ValueError

Exception

9.函數(shù)

1)定義函數(shù)

def? 函數(shù)名(參數(shù)列表):

語句

return 結(jié)果

如函數(shù)沒有一個(gè)return ,則返回是None

def add(x, y):

s = x + y

return s

? ? ? ?? 調(diào)用函數(shù):add(10, 20)? 返回30

? ? ? ?? 關(guān)鍵參數(shù)傳值:

add(y=10, x=20)

? ? ? ?? 參數(shù)默認(rèn)值

def? multiple(x, base=4):

if x % base == 0:

return True

print(‘hahahaha’)

return False

? ? ? 調(diào)用時(shí):multiple(13)? 返回False

? ? ? ? ? ? ? ? ? ? ? multiple(15, 5) 返回True

def sum_(*args):

s = 0

for n in args:

s += n

return s

調(diào)用:sum_(10, 20, 30 , 40, 50)

sum_(1, 5, 8)

? ?? **kwargs :? 一般情況下,做函數(shù)的可選項(xiàng)

def openTxt(path, **kwargs):

mode = kwargs.get(‘mode’)

if not mode:

? ? ? ? ? ? ?? mode = ‘rt’? ? # 默認(rèn)值

charset = kwargs.get(‘charset’)

if not charset:

charset= ‘utf-8’

with open(path, mode, encoding=charset) as f:

c =? f.read()

print(c)

調(diào)用:openTxt(r’c:\aa.txt’)

openTxt(r’c:\aa.txt’, charset=‘gbk’)

openTxt(r’c:\aa.txt’,charset=‘gbk’,mode=‘w+’)

異常處理:

try:

? ? ? ?? 可能出現(xiàn)的異常

except 異常類as 類對象:

? ? ? ?? 處理異常的語句

finally:

? ? ? ? ? 最終處理的語句

打開文件時(shí)可能會出現(xiàn)異常,IOError

try:

? ? ? ?? f = open(r’c:\aa.txt’)? # 如果aa.txt文件不存在

except:

? ? ? ?? print(‘文件不存在’)

finally:

? ? ? ?? print(‘文件操作結(jié)束’)

? ? def? chgInt(x):? # 將字符的x參數(shù)值轉(zhuǎn)成int類型

try:

return int(x)

except:

? ? ? ? ? ? print(‘{0}? 不能轉(zhuǎn)成int’.format(x))

return 0

‘’.replace()

s.find()

‘saa’.split()

max()

open()

調(diào)用:chgInt(‘a(chǎn)’) == None? # 打印‘a(chǎn)’ 不能轉(zhuǎn)成int

? ? ? ?? chgInt(’10’) == 10? # 返回10

Sort 排序

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

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

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