Python學習(二) 函式

2021-09-11 03:49:28 字數 1906 閱讀 5183

import math

資料型別檢查:

isinstance(x,(int,float))           #判斷x的型別是否為int或float型別

#定義函式:格式def (引數):  注意函式體要縮排

#返回用return,如果函式沒有返回執行完成自動返回return none

def (x,y,z,...):

pass

#函式體,為了保持函式完整性可以用pass

#空函式

def empty():

pass

#pass語句什麼也不做,可以用作佔位符,保持函式完整性

#python中可以返回多個值,例如遊戲中的座標等,其實返回的是乙個元組

#解ax*x + bx + c = 0函式

def quadratic(a,b,c):

x1 = b*b-4*a*c

if x1 == 0:

x2 = 0

elif x1 < 0:

return

else:

x2 = math.sqrt(x1)

x3 = (x2 - b)/(2*a)

x4 = -(x2 + b)/(2*a)

return (x3,x4)

#函式引數,必選引數,預設引數,可變引數,關鍵字引數,命名關鍵字引數,組合引數

#必選引數

def sum(x,y):          #x和y為必選引數,呼叫必須是sum(param1,param2)

pass

#預設引數:必選引數在前,預設引數在後,用預設引數可以降低呼叫函式的難度

#預設引數有乙個坑,為了不出錯。   切記!!!!預設引數必須為不可變物件!!!

def sum(x,y,z=0):       #z=0為預設引數,呼叫sum(1,2)時z=0 或者 sum(1,2,3)時z=3

pass

#可變引數:注:引數為tuple和list的區別是前面加乙個*

#可變引數允許傳入0或者任意引數,呼叫的時候組裝成乙個tuple

def sum(x,y,*kw):        # *kw為可變引數 , sum(1,2,3,4,5)

pass

#關鍵字引數

#關鍵字引數允許傳入0或者任意含引數名的引數,呼叫的時候組裝為乙個dict   注意與可變引數的區別

def sum(x,y,**kw): # **kw為關鍵字引數

pass

#命名關鍵字引數

#和關鍵字引數不同的是,命名關鍵字引數的引數名字只能是*後面限定的  注意python2.x中不支援

def sum(x,y,*,z,p): # *後面的引數為命名關鍵字引數

pass

#組合引數:注意引數順序

def(x,y,z=0,*kw,*,p,q,**kw,):

pass

#切記:雖然組合很多,但是不要同時使用太多組合,否則函式介面的可理解性很差

#遞迴函式:乙個函式在內部呼叫自己本身

def fact(n):

if n==1:

return 1

return n * fact(n-1)

#遞迴函式如果遞迴太大會出現棧溢位,通過尾遞迴優化

def fact(n):

return fact1(n,1)

def fact1(n,product):

if n == 1:

return product

return fact1(n-1,n*product)

python學習(二) 函式

在python中,定義乙個函式要使用def語句,依次寫出函式名 括號 括號中的引數和冒號 然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。如果沒有return語句,函式執行完畢後也會返回結果,只是結果為none return none可以簡寫為return。如果想定義乙個什麼事也不做...

python初步學習 python函式 二

python是支援多種范型的語言,可以進行所謂函式式程式設計,其突出體現在有這麼幾個函式 filter map reduce lambda yield g lambda x,y x y x y,並返回結果 g 3,4 7 lambda x x 2 4 返回4的平方 16lambda函式的使用方法 冒...

Python學習筆記(二) 函式

呼叫函式 abs max min hex 整數轉換成十六進製制 資料型別轉換 int float str bool 定義函式 定義乙個函式要使用 def語句,依次寫出函式名 括號 括號中的引數和冒號 然後,在縮排塊中編寫函式體,函式的返回值用 return 語句返回。def my abs x if ...