# Python 函數
本章節我們將為大家介紹Python中函數的應用。
該章節可參閱[Python 函數應用詳解](/python/python-functions.html)。
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 函數應用詳解](/python/python-functions.html)。
- Python 基礎教程
- Python 簡介
- Python 環境搭建
- Python 基礎語法
- Python 變量類型
- Python 運算符
- Python 條件語句
- Python 循環語句
- Python While循環語句
- Python for 循環語句
- Python 循環嵌套
- Python break 語句
- Python continue 語句
- Python pass 語句
- Python 數字
- Python 字符串
- Python 列表(Lists)
- Python 元組
- Python 字典(Dictionary)
- Python 日期和時間
- Python 函數
- Python 模塊
- Python 文件I/O
- Python 異常處理
- Python 高級教程
- Python 面向對象
- Python 正則表達式
- Python CGI編程
- Python 使用SMTP發送郵件
- Python 多線程
- Python 2.x與3??.x版本區別
- Python IDE
- Python JSON
- Python3 教程
- Python3 基礎語法
- Python3 基本數據類型
- Python3 解釋器
- Python3 注釋
- Python3 數字運算
- Python3 字符串
- Python3 列表
- Python3 編程第一步
- Python3 條件控制
- Python3 循環
- Python3 函數
- Python3 數據結構
- Python3 模塊
- Python3 輸入和輸出
- Python3 錯誤和異常
- Python3 類
- Python3 標準庫概覽
- 免責聲明