首頁 >後端開發 >Python教學 >詳解Python函數的使用

詳解Python函數的使用

高洛峰
高洛峰原創
2017-03-23 14:33:111485瀏覽

1.函數的基本定義


def 函数名称(参数)
         执行语        
         return 返回值

def : 定義函數的關鍵字;

函數名稱:顧名思義,是函數的名字,可以用來呼叫函數,不能使用關鍵字來命名,做好是用這個函數的功能的英文名命名,可以採用駝峰法與下劃線法;

參數:用來給函數提供數據,有形參和實參的區分;

執行語句:也叫函數體,用來進行一系列的邏輯運算;

傳回值:執行完函數後,返回給呼叫者的數據,預設為None,所以沒有回傳值時,可以不寫return。

 

2.函數的普通參數

#最直接的一對一關係的參數,如:


def fun_ex(a,b):            #a,b是函数fun_ex的形式参数,也叫形参
    sum=a+b    print('sum =',sum)
fun_ex(1,3)                  #1,3是函数fun_ex的实际参数,也叫实参#运行结果sum = 4

 

3.函數的預設參數

為參數定義一個預設值,如果呼叫函數時,沒有給指定參數,則函數使用預設參數,預設參數需要放在參數​​清單的最後,如:


def fun_ex(a,b=6):    #默认参数放在参数列表最后,如b=6只能在a后面
    sum=a+b    print('sum =',sum)
fun_ex(1,3)
fun_ex(1)#运行结果sum = 4sum = 7

 

4.函數的動態參數

不需要指定參數是元組或字典,函數自動把它轉換成元組或字典,如:

#
#转换成元组的动态参数形式,接受的参数需要是可以转成元组的形式,就是类元组形式的数据,如数值,列表,元组。

def func(*args):
    print(args,type(args))

func(1,2,3,4,5)

date_ex1=('a','b','c','d')
func(*date_ex1)

#运行结果
(1, 2, 3, 4, 5) <class &#39;tuple&#39;>
(&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;) <class &#39;tuple&#39;>

动态参数形式一
#转换成字典的动态参数形式,接收的参数要是能转换成字典形式的,就是类字典形式的数据,如键值对,字典

def func(**kwargs):
    print(kwargs,type(kwargs))

func(a=11,b=22)

date_ex2={&#39;a&#39;:111,&#39;b&#39;:222}
func(**date_ex2)

#运行结果
{&#39;b&#39;: 22, &#39;a&#39;: 11} <class &#39;dict&#39;>
{&#39;b&#39;: 222, &#39;a&#39;: 111} <class &#39;dict&#39;>

动态参数形式二
#根据传的参数转换成元组和字典的动态参数形式,接收的参数可以是任何形式。
def func(*args,**kwargs):
    print(args, type(args))
    print(kwargs,type(kwargs))

func(123,321,a=999,b=666)

date_ex3={&#39;a&#39;:123,&#39;b&#39;:321}
func(**date_ex3)

#运行结果
(123, 321) <class &#39;tuple&#39;>
{&#39;b&#39;: 666, &#39;a&#39;: 999} <class &#39;dict&#39;>
() <class &#39;tuple&#39;>
{&#39;b&#39;: 321, &#39;a&#39;: 123} <class &#39;dict&#39;>

动态参数形式三

5.函數的回傳值

執行一個函數,通常需要從中得到某個訊息,這時就需要使用return來取得回傳值,如:

def fun_ex(a,b):
    sum=a+b
    return sum      #返回sum值

re=fun_ex(1,3)   
print(&#39;sum =&#39;,re)

#运行结果
sum = 4

 

6.lambda表達式

用來表示簡單的函數,如:

#普通方法定义函数
def sum(a,b):
    return a+b
sum=sum(1,2)
print(sum)

#lambda表达式定义函数
myLambda = lambda a,b : a+b
sum=myLambda(2,3)
print(sum)

#运行结果
5


#7.內建函數

## 1)內建函數列表

##int() isinstance()##issubclass()type()##hasattr()max()#記憶體視圖()
    ## 內建函數  
<span class="pre">#abs()</span> <span class="pre"> dict ()</span> <span class="pre">##help()</span> <span class="pre">##min()</span> <span class="pre"></span>setattr()
<span class="pre">##all()</span> <span class="pre">dir()</span> <span class="pre">hex()</span> <span class="pre"> ##next()</span>######## ####### #any() <span class="pre"></span>#pmod()
<span class="pre">id()</span> <span class="pre">##object()</span> #sorted()<span class="pre"></span> <span class="pre"></span>##ascii()############### #########輸入() <span class="pre"></span>oct()
<span class="pre">#staticmethod()</span> <span class="pre"></span> <span class="pre"></span> ## bin()<span class="pre"></span> eval()<span class="pre"></span>
<span class="pre"></span>open() <span class="pre"></span>##str() <span class="pre"></span> bool() <span class="pre"></span> ##exec()<span class="pre"></span>
<span class="pre"></span>ord() <span class="pre"></span>#sum() <span class="pre"></span> #bytearray()<span class="pre"></span> ##filter()<span class="pre"></span>
<span class="pre"></span>##戰俘()################ ## #bytes() <span class="pre"></span>float()
<span class="pre"></span>#float() <span class="pre"></span>##iter() <span class="pre"></span>##print() <span class="pre"></span>tuple() <span class="pre"></span>##callable()
<span class="pre"></span>#format() <span class="pre"></span>format() <span class="pre"></span>##len ()########### ########## <span class="pre"></span> #chr( )<span class="pre"></span>
frozenset()<span class="pre"></span> #list()<span class="pre"></span> #range()<span class="pre"></span> vars() <span class="pre"></span> classmethod()<span class="pre"></span>
##classmethod()<span class="pre"></span> ##getattr()<span class="pre"></span> ##locals( )<span class="pre"></span> repr()<span class="pre"></span> ##zip()<span class="pre"></span>
#compile()<span class="pre"></span> #全域變數()<span class="pre"></span> map() <span class="pre"></span> 反轉())反白())<span class="pre">####### _進口__()########### </span><span class="pre"></span>
<span class="pre"></span>round()  <span class="pre"></span> delattr()<span class="pre"></span> #hash()<span class="pre"></span>
####### ###########

以上是詳解Python函數的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn