Python學習6-函數

對某一類操作進行封裝既可以獲得函數,在java中成爲方法。函數是抽象的基本語法。

1. 系統函數
python提供了許多已經定義好的函數,只需要調用方便人們使用。如獲取絕對值(abs)、長度(len)、最大(max)/最小(min)值等。

>>> abs(-11.2)
11.2
>>> abs(1)
1
>>> max(3,1,2,4,7,3,5)
7
>>> min(3,1,2,4,7,3,5)
1
>>> len('abcd')
4
>>> divmod(7,3)
(2, 1)
>>> round(11)
11
>>> int('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'
>>> int('1')
1

2. 自定義函數

  • 函數定義
    Python中函數使用“def”關鍵字定義,然後爲函數名、括號、括號裏的參數、“:”,換行後縮進中定義函數的具體代碼塊,如果有返回值使用“return”關鍵字(無返回值時會返回None)。
    1)、參數可以爲無參數、一個或者多個參數。
    如下,定義一個無參數的printHello函數、和一個做加法的add函數。

    >>> def printHello():
    ...   print('hello python')
    ...
    >>> printHello()
    hello python
    >>>
    >>> def add(a,b):
    ...   return a+b
    ...
    >>> add(1,3)
    4

    2)、參數默認值。參數可以設置默認值,設置後該參數可以不傳,在函數中使用默認值,也可以使用參數名=值傳遞默認值(調用函數有多個默認值不全部傳時)。

    >>> def printMy(name,age=12):
    ...   print('Hello, My name is ',name,', age is ',age)
    ...
    >>> printMy('zhangsan')
    Hello, My name is  zhangsan , age is  12
    >>> printMy('zhangsan',20)
    Hello, My name is  zhangsan , age is  20
    >>> printMy('zhangsan',age=13)
    Hello, My name is  zhangsan , age is  13

    3)、可變參數。可變長度參數可以傳入一個list或tuple,也可以使用 “*參數名”傳入參數。循環參數列表的方法相同。如下:

    >>> def testList(list):
    ...   sum=0
    ...   for num in list:
    ...     sum = sum+num
    ...   return sum
    ...
    >>> list=[1,2,3,4]
    >>> testList(list)
    10
    >>> list=[1,2,3,4,5,6]
    >>> testList(list)
    21
    >>>
    >>> def test(*nums):
    ...   sum=0
    ...   for num in nums:
    ...     sum=sum+num
    ...   return sum
    ...
    >>> test(1,2)
    3
    >>> test(1,2,3,4,5)
    15

    4)、關鍵字參數使用 “**參數名”傳入參數。傳入參數在函數中自動轉換爲dict。

    >>> def test3(name,**ss):
    ...   print('name:',name)
    ...   print('ss:',ss)
    ...
    >>> test3('zhangsan')
    name: zhangsan
    ss: {}
    >>> test3('zhangsan',s1='zhangsan')
    name: zhangsan
    ss: {'s1': 'zhangsan'}
    >>> test3('zhangsan',s1='zhangsan',s2='lisi')
    name: zhangsan
    ss: {'s1': 'zhangsan', 's2': 'lisi'}
    >>>
  • 函數使用
    1)、使用函數名、參數值調用。
    2)、將變量指向函數,並且使用變量執行。

    ss = abs(-11)
    ss
    11
    ss = abs
    ss(-10)
    11

3)、匿名函數lambda x:x*x,匿名函數參數爲x,函數內容爲x*x。
4)、裝飾器 @函數名(參數)

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