Python學習筆記之函數用法

來源:互聯網
上載者:User


1. 調用函數時,函數名其實就是指向一個函數對象的引用,完全可以把函數名賦給一個變數,相當於給這個函數起了一個“別名”

    >>> a = abs # 變數a指向abs函數
    >>> a(-1) # 所以也可以通過a調用abs函數
    1
2. 定義函數:使用def語句,依次寫出函數名、括弧、括弧中的參數和冒號: ,然後,在縮排塊中編寫函數體,函數的傳回值用return 語句返回。

求絕對值的例子:

    def my_abs(x):
        if x >= 0:
            return x
        else:
            return -x
3. 空函數

如果想定義一個什麼事也不做的空函數,可以用pass 語句:

    def nop():
        pass
pass 語句什麼都不做,那有什麼用?實際上pass 可以用來作為預留位置,比如現在還沒想好怎麼寫函數的代碼,就可以先放一個pass ,讓代碼能運行起來。

pass 還可以用在其他語句裡,比如:

    if age >= 18:
        pass
缺少了pass ,代碼運行就會有語法錯誤。

4. 定義函數時參數檢查

資料類型檢查可以用內建函數isinstance() 實現.

    def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x
5. 在文法上,返回一個tuple可以省略括弧,而多個變數可以同時接收一個tuple,按位置賦給對應的值,所以,Python的函數返回多值其實就是返回一個tuple,但寫起來更方便。

例子:

import math
def move(x, y, step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny

>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0

>>> r = move(100, 100, 60, math.pi / 6)
>>> print(r)
(151.96152422706632, 70.0)
6. 函數執行完畢也沒有return 語句時,自動return None 。

7. 定義預設參數要牢記一點:預設參數必須指向不變對象!在編寫程式時,如果可以設計一個不變對象,那就盡量設計成不變對象。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.