python函數基本操作

1.函數的定義

def 函數名():
    函數體
return 返回值1,返回值2

函數體內部的語句在執行時,一旦執行到return時,函數就執行完畢。
如果沒有return語句,函數執行完畢後也會返回結果,只是結果爲None。
空函數
如果想定義一個什麼事也不做的空函數,可以用pass語句

def fun():
    pass

2.函數的調用

函數名()

注意:定義函數時,函數不執行,調用函數時, 函數才執行

調用函數的時候,如果傳入的參數數量不對,會報TypeError的錯誤

In [1]: abs(1,2)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-d2854b9957d6> in <module>()
----> 1 abs(1,2)

TypeError: abs() takes exactly one argument (2 given)

如果傳入的參數數量是對的,但參數類型不能被函數所接受,也會報TypeError的錯誤


In [2]: abs("a")
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-05efdfd16af5> in <module>()
----> 1 abs("a")

TypeError: bad operand type for abs(): 'str'

實現打印返回值: print 函數名()

In [4]: def add(x,y):
   ...:     return x+y
   ...: 

In [5]: print add(1,2)
3

3.函數的參數

  • 必選參數
#形式參數x, y
def add(x, y):
    print x + y

#實參 x=1, y=2
add(1 2)
3
  • 默認參數
    把一個參數默認爲一個固定的值
#把y作爲默認參數,默認值爲2
def mypow(x,y=2):
    print x**y
#調用時,只用一個必選參數,可以省略默認參數
mypow(2)

從上面的例子可以看出,默認參數可以簡化函數的調用。設置默認參數時,有幾點要注意:
必選參數在前,默認參數在後,否則Python的解釋器會報錯
當函數有多個參數時,把變化大的參數放前面,變化小的參數放後面。變化小的參數就可以作爲默認參數
定義默認參數要牢記默認參數必須指向不變對象

  • 可變參數

可變參數就是傳入的參數個數是可變的,可以是1個、2個到任意個,還可以是0個,這些可變參數在函數調用時自動組裝爲一個tuple

#args 實質上是一個元組 ;
def add(*args):
    sum = 0
    for i in args:
        sum += i
    print sum

# 實參 , x=1, y=2
add(1 2 3 4 5 6 2 3 4 5 76)
  • 關鍵字參數

而關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝爲一個dict

# kwargs 實質上是一個字典 
def inuser(name, age, **kwargs):
    print name, name, kwargs
#在調用該函數時,可以只傳入必選參數,也可以傳入任意個數的關鍵字參數
inuser("user1",12,city="xi'an",birth="20180101")
  • 參數組合
在Python中定義函數,可以用必選參數、默認參數、可變參數、關鍵字參數,這4種參數都可以組合使用。參數定義的順序必須是:必選參數、默認參數、可變參數、關鍵字參數。

4.函數返回值

  • 函數中如果沒有return時, 默認返回None
  • 返回值爲1個
  • 返回多個值
# 實質上 python 只能返回一個值,間接通過元組返回多個值 ;
def fun(*args):
    return max(args), min(args)
print fun(1,2,3,4,5,6)

5.函數的作用域

num = 1
def fun():
    num = 5
fun()
print num

運行效果:
1

由於函數體外的num爲全局變量,函數體內的num爲局部變量,只作用於函數體內,當在函數體外輸出num的值,自然時全局變量num生效

# 全局變量
num = 1
def fun():
# global 聲明 num 爲全局變量
    global num
    num = 5
fun()
print num

運行效果:
5

注意:global關鍵字必須要先聲明, 再賦值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章