python基礎教程之自訂函數介紹

來源:互聯網
上載者:User
函數最重要的目的是方便我們重複使用相同的一段程式。

將一些操作隸屬於一個函數,以後你想實現相同的操作的時候,只用調用函數名就可以,而不需要重複敲所有的語句。

函數的定義

首先,我們要定義一個函數, 以說明這個函數的功能。

代碼如下:


def square_sum(a,b):
c = a**2 + b**2
return c


這個函數的功能是求兩個數的平方和。

首先,def,這個關鍵字通知python:我在定義一個函數。square_sum是函數名。

括弧中的a, b是函數的參數,是對函數的輸入。參數可以有多個,也可以完全沒有(但括弧要保留)。

我們已經在迴圈和選擇中見過冒號和縮排來表示的隸屬關係。

代碼如下:


c = a**2 + b**2 # 這一句是函數內部進行的運算

return c # 返回c的值,也就是輸出的功能。Python的函數允許不傳回值,也就是不用return。

return可以返回多個值,以逗號分隔。相當於返回一個tuple(定值表)。

return a,b,c # 相當於 return (a,b,c)

在Python中,當程式執行到return的時候,程式將停止執行函數內餘下的語句。return並不是必須的,當沒有return, 或者return後面沒有傳回值時,函數將自動返回None。None是Python中的一個特別的資料類型,用來表示什麼都沒有,相當於C中的NULL。None多用於關鍵字參數傳遞的預設值。

函數調用和參數傳遞

定義過函數後,就可以在後面程式中使用這一函數

代碼如下:


print square_sum(3,4)


Python通過位置,知道3對應的是函數定義中的第一個參數a, 4對應第二個參數b,然後把參數傳遞給函數square_sum。

(Python有豐富的參數傳遞方式,還有關鍵字傳遞、表傳遞、字典傳遞等,基礎教程將只涉及位置傳遞)

函數經過運算,傳回值25, 這個25被print列印出來。

我們再看下面兩個例子

代碼如下:


a = 1

def change_integer(a):
a = a + 1
return a

print change_integer(a)
print a

#===(Python中 "#" 後面跟的內容是注釋,不執行 )

b = [1,2,3]

def change_list(b):
b[0] = b[0] + 1
return b

print change_list(b)
print b

第一個例子,我們將一個整數變數傳遞給函數,函數對它進行操作,但原整數變數a不發生變化。

第二個例子,我們將一個表傳遞給函數,函數進行操作,原來的表b發生變化。

對於基礎資料型別 (Elementary Data Type)的變數,變數傳遞給函數後,函數會在記憶體中複製一個新的變數,從而不影響原來的變數。(我們稱此為值傳遞)

但是對於表來說,表傳遞給函數的是一個指標,指標指向序列在記憶體中的位置,在函數中對錶的操作將在原有記憶體中進行,從而影響原有變數。 (我們稱此為指標傳遞)

總結

代碼如下:


def function_name(a,b,c):
statement
return something # return不是必須的


函數的目的: 提高程式的重複可用性。

代碼如下:


return None


通過位置,傳遞參數。

基礎資料型別 (Elementary Data Type)的參數:值傳遞

表作為參數:指標傳遞

練習:

寫一個判斷閏年的函數,參數為年、月、日。若是是閏年,返回True

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.