數學上的函數,是指給定一個輸入,就會有惟一輸出的一種對應關係。編程語言裏的函數跟這個意思差很少,但也有不一樣。函數就是一塊語句,這塊語句有個名字,你能夠在須要時反覆地使用這塊語句。它有可能須要輸入,有可能會返回輸出。python
舉一個現實中的場景:咱們去餐廳吃飯,跟服務員點了菜,過了一下子,服務員把作好的菜端上來。餐廳的廚房就能夠看做是一個函數,咱們點的菜單,就是給這個函數的參數;廚師在廚房裏作菜的過程就是這個函數的執行過程;作好的菜是返回結果,返回到咱們的餐桌上。編程
咱們以前已經用到過python裏內建的函數,好比input和range。編程語言
以range(1,10)爲例,range是這個函數的名稱,後面括號裏的1和10是range須要的參數。它有返回結果,就是一個從1到9的序列。函數
再來看input(),括號裏面沒有,表示咱們沒有給參數。函數執行過程當中,須要咱們從控制檯輸入一個值。函數的返回結果就是咱們輸入的內容。spa
PS:range還能夠接受1個或3個參數,input也能夠接受1個字符串參數。能夠等我之後講,或去查閱相關資料瞭解詳細。字符串
若是咱們要本身寫一個函數,就須要去定義它。python裏的關鍵字叫def(define的縮寫),格式以下:input
def sayHello():數學
print 'hello world!'im
sayHello是這個函數的名字,後面的括號裏是參數,這裏沒有,表示不須要參數。但括號和後面的冒號都不能少。下面縮進的代碼塊就是整個函數的內容,稱做函數體。img
而後咱們去調用這個函數:
sayHello()
獲得和直接執行print 'hello world!'同樣的結果。