天天看點

python函數

Python内置了很多有用的函數,我們可以直接調用。

要調用一個函數,需要知道函數的名稱和參數,比如求絕對值的函數

abs

,隻有一個參數。可以直接從Python的官方網站檢視文檔:

官方文檔:

http://docs.python.org/3/library/functions.html#abs 比如求絕對值的函數abs:

#abs絕對值函數
print(abs(-12))
》12      

常用的方法:

#一些常用的方法
#range整數數組
print(list(range(2,11)))
》[2, 3, 4, 5, 6, 7, 8, 9, 10]

#int整數轉換
print(int(-989.222))
》-989

#max最大值
print(max(1,3,44,2,))
》44

#hex十六進制轉換
print(hex(256))
》0x100      

定義函數

使用def ,依次寫函數名,參數,冒号:,在縮進塊中編寫函數體,使用return語句傳回值

#def定義方法
def my_abs(x):
    if x>0:
        print(x)
    else:
        print(-x)
#調用函數
my_abs(-222)
》222      

調用方法:

在其他檔案中調用這個function檔案的my_abs方法

#導入方法:from 檔案名 import 方法名
from function import my_abs
my_abs(-121)
》121      

注意:這裡會先加載function檔案,如果這個檔案中有方法的話,會直接執行,但是多次加載檔案也隻會執行一次。

pass語句

#pass 這個語句什麼都不做,可以用來做為占位符
#比如現在沒有想好的代碼可以先放一個pass,讓代碼運作起來
def nop():
    print('可以先放一個pass,讓代碼運作起來')
    pass
    print('pass')

nop()      

異常處理

#異常處理 raise TypeError()
def my_abs(x):
    if not isinstance(x,(int,float)):
        raise TypeError('bad operand type')
    if x>0:
        print(x)
    else:
        print(-x)

my_abs('2')
》TypeError: bad operand type      

傳回值

我們可以同時獲得傳回值,但是這點其實是一種假象,python函數傳回的仍然是單一值

原來傳回值是一個tuple!,但是文法傳回一個tuple可以省略括号,而多個變量可以同時接受一個tuple,按位置指派。

#傳回值 為了使用sin和cos,需導入math包
import math
def move(x,y,step,angle=0):
    nx=x+step*math.sin(angle)
    ny=y-step*math.cos(angle)
    return nx,ny

x,y=move(100,100,5)
print(x,y)
》100.0 95.0

z=move(100,100,5,math.pi/2)
print(z)
》(105.0, 100.0)      

總結

定義函數,需确定函數名和參數個數

如果有必要,可以先對參數的資料類型做檢查

函數體内可以用return随時傳回函數結果

函數執行完畢沒有return語句自動return None

函數可以同時傳回多個值,但是其實就是一個tuple