Pyhon基礎學習(三) 函式,模組,異常等

2021-10-08 06:34:58 字數 1888 閱讀 5880

一,函式

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。函式能提高應用的模組性,和**的重複利用率。

你已經知道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 但你也可以自己建立函式,這被叫做使用者自定義函式。你可以定義乙個由自己想要功能的函式,以下是簡單的規則 任何傳入引數和自變數必須放在圓括...