Python 中的函數
Python中的函數和其他程序設計語言一樣,函數的主要作用是代碼重用,在邏輯上分割代碼的大小。
定義函數
通過def 關鍵字定義。def關鍵字后面跟一個函數的標識名稱,后面跟一對圓括號。圓括號中間是參數變量名,該行用冒號結尾。接下來是一塊語句,他們是函數體。
函數定義的例子:
#!/usr/bin/env python
# *coding=utf-8
""" set encoding """
def sayhello():
"""example of python function"""
print "Hello"
sayhello()
函數形參
函數的形參具有局部性,在函數中使用參數應該注意這種局部性,并且加以區分,在這里我們可以看一個例子。
#!/usr/bin/env python
# *coding=utf-8
""" set encoding """
def func(x):
print "x is %d" %(x)
x = 2
print "change local x to %d" %(x)
x = 50
func(x)
print "x is still %d" %(x)
在函數中,我們第一次使用x 的值的時候,Python 使用函數聲明的形參的值。
接下來,我們將2賦值給x。這個時候x是函數的局部變量,所以我們在函數內部改變x 的時候,在主塊中的x不受影響。
Golbal 語句
如果需要為在函數外面定義的變量賦值,那么需要在函數內告訴python,這個變量不是局部的,是全局的。使用golbal語句,可以明確的讓讀者知道,這個變量是在函數外面定義的。
def func():
global x
print "x is", x
x = 2
print "changed local x to ", x
x = 50
func()
print "Value of x is", x
運行結果:
PS G:\2> & python g:/2/exp.py
x is 50
changed local x to 2
Value of x is 2
PS G:\2>
默認參數值
對于一些函數, 你希望它的一些參數是可選的,用戶可以根據需要輸入參數的值。如果用戶不想要為這些參數提供數值的話,這些參數就可以使用默認值。可以在函數定義的形參名之后加上賦值運算符(=)和默認值,從而給參數指定默認參數值。
#!/usr/bin/env python
# *coding=utf-8
""" set encoding """
def sayhello(name, time = 5):
""" defaulf is 5"""
print name
print "hello"*time
sayhello("kk")
sayhello("kk",1)
PS G:\2> & python g:/2/exp.py
kk
hellohellohellohellohello
kk
hello
PS G:\2>