1. 程式人生 > >python筆記-函數

python筆記-函數

關鍵字參數 缺省參數 sum list 語法 聲明 修改 輸出結果 不可變對象

函數定義
函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號()。
任何傳入參數和自變量必須放在圓括號中間。圓括號之間可以用於定義參數。
函數的第一行語句可以選擇性地使用文檔字符串—用於存放函數說明。
函數內容以冒號起始,並且縮進。
return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。

def functionname( parameters ):
"函數_文檔字符串"
function_suite
return [expression]

函數調用:直接寫函數名字(參數)
def printtest(str):
print(str)

return

printtest(‘aa‘)
可更改(mutable)與不可更改(immutable)對象
可更改:列表和字典
不可更改:strings, tuples, 和 numbers 是不可更改的對象

python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象

傳不可變對象實例
#!/usr/bin/python

def ChangeInt( a ):
a = 10

b = 2
ChangeInt(b)
print b # 結果是 2

傳可變對象實例
#!/usr/bin/python

def changeme( mylist ):
"修改傳入的列表"
mylist.append([1,2,3,4]);

print "函數內取值: ", mylist
return

mylist = [10,20,30];
changeme( mylist );
print "函數外取值: ", mylist

輸出結果
函數內取值: [10, 20, 30, [1, 2, 3, 4]]
函數外取值: [10, 20, 30, [1, 2, 3, 4]]

參數:
必備參數:必備參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。
調用printme()函數,你必須傳入一個參數,不然會出現語法錯誤
關鍵字參數
#!/usr/bin/python

#可寫函數說明
def printme( str ):
"打印任何傳入的字符串"

print str;
return;

#調用printme函數
printme( str = "My string");

缺省參數
調用函數時,缺省參數的值如果沒有傳入,則被認為是默認值
#!/usr/bin/python

#可寫函數說明
def printinfo( name, age = 35 ):
"打印任何傳入的字符串"
print "Name: ", name;
print "Age ", age;
return;

#調用printinfo函數
printinfo( age=50, name="miki" );
printinfo( name="miki" );
不定長參數
你可能需要一個函數能處理比當初聲明時更多的參數。這些參數叫做不定長參數,和上述2種參數不同,聲明時不會命名

#!/usr/bin/python

def printinfo( arg1, *vartuple ):
"打印任何傳入的參數"
print "輸出: "
print arg1
for var in vartuple:
print var
return;

printinfo( 10 );
printinfo( 70, 60, 50 );

return 語句
return語句[表達式]退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None

def sum( arg1, arg2 ):
total = arg1 + arg2
print "函數內 : ", total
return total;
total = sum( 10, 20 );

python筆記-函數