python 自定義函式

pursuer.chen發表於2016-07-22

介紹

在Python中,定義一個函式要使用def語句,依次寫出函式名、括號、括號中的引數和冒號:,然後,在縮排塊中編寫函式體,函式的返回值用return語句返回,return滿足條件就不再執行下面的語句,也可以用print輸出。
 
1.定義函式
自定義一個年齡段的判斷函式,當輸入的年齡大於等於18返回’adult‘,如果輸入的值是非整形則返回錯誤
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#file:def_age
def my_age(x):
    if not isinstance(x,(int)):
         raise TypeError('bad operand type')
    elif x>=18:
        return ('adult')
    elif x<7:
        return ('child')
    else:
        return ('young')

2.呼叫自定義函式

有三種呼叫自定義函式的方法

1.如果自定義函式已經儲存成了檔案,

>>> from def_age import my_age
>>> my_age(20)
'adult'
>>> 

在檔案目錄下開啟編譯器,由於自定義函式不是內部函式,需要先匯入函式,注意def_age不需要帶字尾.py

2.在程式碼內部給定值呼叫

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#file:def_age
def my_age(x):
    if not isinstance(x,(int)):
         raise TypeError('bad operand type')
    elif x>=18:
        return ('adult')
    elif x<7:
        return ('child')
    else:
        return ('young')

print(my_age(22))

不需要先匯入函式,直接執行檔案即可,但是這種方法不夠靈活。

3.在程式碼內部先定義變數再呼叫函式

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#file:def_age
def my_age(x):
    if not isinstance(x,(int)):
         raise TypeError('bad operand type')
    elif x>=18:
        return ('adult')
    elif x<7:
        return ('child')
    else:
        return ('young')
age=22
my_age(age)

同樣這種方法不夠靈活

3.建立空函式 
 空函式也就是函式不包含執行程式碼,用pass作為程式碼塊,pass程式碼什麼都不做;有時候某塊程式碼還沒想好怎麼寫有為了不影響整個程式碼的執行,可以先存pass讓程式碼先跑起來。
def my_dinf():
    pass

pass還可以放在其它程式碼中,比如:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#file:def_age
def my_age(x):
    if not isinstance(x,(int)):
         raise TypeError('bad operand type')
    elif x>=18:
        pass
    elif x<7:
        return ('child')
    else:
        return ('young')
age=22
print (my_age(age))

還是剛才的年齡段判斷函式,現在在elif x>=18:程式碼塊下面使用pass,當滿足該條件後什麼都不做,整個程式碼正常執行。

總結

 

 

 

備註:

    作者:pursuer.chen

    部落格:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結。

《歡迎交流討論》

相關文章