一,函式
函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。函式能提高應用的模組性,和**的重複利用率。
你已經知道python提供了許多內建函式,比如print()。但你也可以自己建立函式,這被叫做使用者自定義函式。
定義乙個函式
你可以定義乙個由自己想要功能的函式,以下是簡單的規則:
1,引數傳遞
在 python 中,strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。
1,不可變型別:變數賦值 a=5 後再賦值 a=10,這裡實際是新生成乙個 int 值物件 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。
2,可變型別:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。
python 函式的引數傳遞:
1,不可變型別:類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另乙個複製的物件,不會影響 a 本身。
2,可變型別:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響
python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。
2,預設引數和不定長引數
預設引數
def printinfo( name, age = 35 ):
"列印任何傳入的字串"
print "name: ", name
print "age ", age
return
#呼叫printinfo函式
printinfo( age=50, name="miki" )
printinfo( name="miki" )
不定長引數
# 可寫函式說明
def printinfo( arg1, *vartuple ):
"列印任何傳入的引數"
print "輸出: "
print arg1
for var in vartuple:
print var
return
# 呼叫printinfo 函式
printinfo( 10 )
printinfo( 70, 60, 50 )
3,變數和變數的作用域
變數有區域性變數和全域性變數
區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。呼叫函式時,所有在函式內宣告的變數名稱都將被加入到作用
三,異常
捕捉異常可以使用try/except語句。
try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常資訊並處理。
如果你不想在異常發生時結束你的程式,只需在try裡捕獲它。
例項try:
fh = open("testfile", "w")
fh.write("這是乙個測試檔案,用於測試異常!!")
except ioerror:
print "error: 沒有找到檔案或讀取檔案失敗"
else:
print "內容寫入檔案成功"
fh.close()
try-finally 語句
try:
fh = open("testfile", "w")
fh.write("這是乙個測試檔案,用於測試異常!!")
finally:
print "error: 沒有找到檔案或讀取檔案失敗"
Python基礎語法05 函式模組
函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。你已經知道python提供了許多內建函式,比如print 但你也可以自己建立函式,這被叫做使用者自定義函式。你可以定義乙個由自己想要功能的函式,以下是簡單的規則 任何傳入引數和自變數必須放在圓括...
Python基礎 函式 模組 導包
1.預設引數 呼叫時不需要傳參,更加方便 def get sum start 1,end 100 pass2.可變數量引數 數量可變 引數名稱 裝包,型別是元組 def test a,b,args,c 0 print a,b,args,c test 1,2,3,4,5,c 100 1 2 3,4,5...
Python基礎語法05 函式模組
函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。你已經知道python提供了許多內建函式,比如print 但你也可以自己建立函式,這被叫做使用者自定義函式。你可以定義乙個由自己想要功能的函式,以下是簡單的規則 任何傳入引數和自變數必須放在圓括...