本章節我們將為大家介紹Python中函數的應用。
該章節可參閱Python 函數應用詳解。
Python 定義函數使用 def 關鍵字,一般格式如下:
def 函數名(參數列表): 函數體
讓我們使用函數來輸出"Hello World!":
>>> def hello() : print("Hello World!") >>> hello() Hello World! >>>
更復雜點的應用,函數中帶上參數變量:
def area(width, height): return width * height def print_welcome(name): print("Welcome", name) print_welcome("Fred") w = 4 h = 5 print("width =", w, " height =", h, " area =", area(w, h))
以上實例輸出結果:
Welcome Fred width = 4 height = 5 area = 20
定義在函數內部的變量擁有一個局部作用域,定義在函數外的擁有全局作用域。
通過以下實例,你可以清楚了解Python函數變量的作用域:
#!/usr/bin/env python3 a = 4 # 全局變量 def print_func1(): a = 17 # 局部變量 print("in print_func a = ", a) def print_func2(): print("in print_func a = ", a) print_func1() print_func2() print("a = ", a)
以上實例運行結果如下:
in print_func a = 17 in print_func a = 4 a = 4
函數也可以使用 kwarg=value 的關鍵字參數形式被調用.例如,以下函數:
def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'): print("-- This parrot wouldn't", action, end=' ') print("if you put", voltage, "volts through it.") print("-- Lovely plumage, the", type) print("-- It's", state, "!")
可以以下幾種方式被調用:
parrot(1000) # 1 positional argument parrot(voltage=1000) # 1 keyword argument parrot(voltage=1000000, action='VOOOOOM') # 2 keyword arguments parrot(action='VOOOOOM', voltage=1000000) # 2 keyword arguments parrot('a million', 'bereft of life', 'jump') # 3 positional arguments parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword
以下為錯誤調用方法:
parrot() # required argument missing parrot(voltage=5.0, 'dead') # non-keyword argument after a keyword argument parrot(110, voltage=220) # duplicate value for the same argument parrot(actor='John Cleese') # unknown keyword argument
Python的函數的返回值使用return語句,可以將函數作為一個值賦值給指定變量:
def return_sum(x,y): c = x + y return c res = return_sum(4,5) print(res)
你也可以讓函數返回空值:
def empty_return(x,y): c = x + y return res = empty_return(4,5) print(res)
最后,一個最不常用的選擇是可以讓函數調用可變個數的參數.這些參數被包裝進一個元組(查看元組和序列).在這些可變個數的參數之前,可以有零到多個普通的參數:
def arithmetic_mean(*args): sum = 0 for x in args: sum += x return sum print(arithmetic_mean(45,32,89,78)) print(arithmetic_mean(8989.8,78787.78,3453,78778.73)) print(arithmetic_mean(45,32)) print(arithmetic_mean(45)) print(arithmetic_mean())
以上實例輸出結果為:
244 170009.31 77 45 0
更詳細教程請參閱參閱Python 函數應用詳解。