python --函数
轉(zhuǎn)http://www.cnblogs.com/vamei/archive/2012/06/01/2529500.html
函數(shù)最重要的目的是方便我們重復使用相同的一段程序。
將一些操作隸屬于一個函數(shù),以后你想實現(xiàn)相同的操作的時候,只用調(diào)用函數(shù)名就可以,而不需要重復敲所有的語句。
?
函數(shù)的定義
首先,我們要定義一個函數(shù), 以說明這個函數(shù)的功能。
def square_sum(a,b):c = a**2 + b**2return c這個函數(shù)的功能是求兩個數(shù)的平方和。
首先,def,這個關鍵字通知python:我在定義一個函數(shù)。square_sum是函數(shù)名。
括號中的a, b是函數(shù)的參數(shù),是對函數(shù)的輸入。參數(shù)可以有多個,也可以完全沒有(但括號要保留)。
我們已經(jīng)在循環(huán)和選擇中見過冒號和縮進來表示的隸屬關系。
c = a**2 + b**2????????# 這一句是函數(shù)內(nèi)部進行的運算
return c???????????????# 返回c的值,也就是輸出的功能。Python的函數(shù)允許不返回值,也就是不用return。
return可以返回多個值,以逗號分隔。相當于返回一個tuple(定值表)。
return a,b,c??????????# 相當于 return (a,b,c)
?
在Python中,當程序執(zhí)行到return的時候,程序?qū)⑼V箞?zhí)行函數(shù)內(nèi)余下的語句。return并不是必須的,當沒有return, 或者return后面沒有返回值時,函數(shù)將自動返回None。None是Python中的一個特別的數(shù)據(jù)類型,用來表示什么都沒有,相當于C中的NULL。None多用于關鍵字參數(shù)傳遞的默認值。
?
函數(shù)調(diào)用和參數(shù)傳遞
定義過函數(shù)后,就可以在后面程序中使用這一函數(shù)
print square_sum(3,4)Python通過位置,知道3對應的是函數(shù)定義中的第一個參數(shù)a, 4對應第二個參數(shù)b,然后把參數(shù)傳遞給函數(shù)square_sum。
(Python有豐富的參數(shù)傳遞方式,還有關鍵字傳遞、表傳遞、字典傳遞等,基礎教程將只涉及位置傳遞)
函數(shù)經(jīng)過運算,返回值25, 這個25被print打印出來。
?
我們再看下面兩個例子
a = 1def change_integer(a):a = a + 1return aprint change_integer(a) print a#===(Python中 "#" 后面跟的內(nèi)容是注釋,不執(zhí)行 )b = [1,2,3]def change_list(b):b[0] = b[0] + 1return bprint change_list(b) print b第一個例子,我們將一個整數(shù)變量傳遞給函數(shù),函數(shù)對它進行操作,但原整數(shù)變量a不發(fā)生變化。
第二個例子,我們將一個表傳遞給函數(shù),函數(shù)進行操作,原來的表b發(fā)生變化。
對于基本數(shù)據(jù)類型的變量,變量傳遞給函數(shù)后,函數(shù)會在內(nèi)存中復制一個新的變量,從而不影響原來的變量。(我們稱此為值傳遞)
但是對于表來說,表傳遞給函數(shù)的是一個指針,指針指向序列在內(nèi)存中的位置,在函數(shù)中對表的操作將在原有內(nèi)存中進行,從而影響原有變量。 (我們稱此為指針傳遞)
?
總結(jié)
def function_name(a,b,c):statementreturn something ?# return不是必須的函數(shù)的目的: 提高程序的重復可用性。
return???? None
通過位置,傳遞參數(shù)。
基本數(shù)據(jù)類型的參數(shù):值傳遞
表作為參數(shù):指針傳遞
總結(jié)
以上是生活随笔為你收集整理的python --函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web项目,要求:保存用户名和密码在Co
- 下一篇: Python中yield