国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

.Net程序員之Python基礎教程學習----函數和異常處理[FifthDay]

2019-11-14 17:23:41
字體:
來源:轉載
供稿:網友

     今天主要記錄,Python中函數的使用以及異常處理.

   一.函數:

     1.函數的創建以及調用.

def Add(val1,val2):    return  val1+val2;PRint Add(1,2)

        2. 定義返回多參數的函數,返回的參數以元組的形式返回,可以通過下表索引來獲取單個值,下面是獲取兩數之差和兩數之和的函數. 整體上來說還是不錯的,在C#中我們一般都用out來實現,多個參數改變返回,不過那樣可讀性不好。

def GetSubAndSum(val1,val2):    return  val1-val2,val1+val2print GetSubAndSum(2,3)  #Answer:(2,3)print GetSubAndSum(2,3)[0] #Answer(2)

    3. 函數實現多參數. 下面例子實現任意參數的參數和. 通過*可以實現多參數。1個*號轉換為元組,2個*號轉換為字典,至于3個*號沒試過,想想應該沒人會川那么復雜的數據呀。

def sumList(*param):    sumNumber=0    for val in param:        sumNumber+=val    return  sumNumberprint sumList(1,2,3) >>6def showList(*param):    print paramshowList(1,2,3)>>(1,2,3)showList()>>()def showDic(**param):    print(param)showDic(Name='Frank',Age=23)>>{'Age': 23, 'Name': 'Frank'}

        5. 函數的遞歸,遞歸說明白點就是函數內部自己調用自己,下面來看看通過遞歸來求n!

            Note: 當N<1 無值返回,所以為None

def Fun(N):    if(N==1):        return 1    elif(N>1):        return N*Fun(N-1)print Fun(3)>>6print Fun(-1)>>None

   二. 函數的異常處理 : 

             既然有函數,必定有的函數可能會出錯,那如何捕獲異常呢.Python中使用 try....except.....finally 來實現.

       1. 異常的類型: 【請原諒我的偷懶.】,對于實際開發中,個人認為應該是Exception用的多,其實我們更多的不會去關心是什么錯,后面這些錯誤在程序中應該都會去通過代碼避免,或者自己去自定義Exception。

 

    2. Try....Except使用.

def Div(val1,val2):    try:        return val1/val2    except ZeroDivisionError:        return 'Error'print Div(1,0)>>Error

         3. 捕獲多個異常,并且打印出異常. 通過Exception可以將所有異常捕獲

def Div(val1,val2):    try:        return val1/val2    except (ZeroDivisionError,TypeError),E:        return Eprint Div(1,0)print Div(1,'2')>>integer division or modulo by zero>>unsupported Operand type(s) for /: 'int' and 'str'

     4.finally 在異常捕獲的用處,不論是否有異常finally的代碼段都會執行,一般用途比如在讀取文件的時候可以在finally里面關閉文件流,這樣就不會導致文件流不關閉,文件崩潰

def Div(val1,val2):    try:        return val1/val2    except (ZeroDivisionError,TypeError),E:        return E    finally:        print("No matter whether there have error,I will Excute")print Div(1,'2')print Div(1,1)>>No matter whether there have error,I will Excute>>unsupported operand type(s) for /: 'int' and 'str'>>No matter whether there have error,I will Excute>>1

    5. 問題來了,finally既然一定都要執行,那么一個方法里面如果finally代碼塊里面有【返回值】,try 里面也有【返回值】,那調用該方法會獲取什么數據呢.那就來看下面的代碼吧.

            Note:都是返回finally的,不清楚為何有這種設計。

def Div(val1,val2):    try:        return val1/val2    except (ZeroDivisionError,TypeError),E:        return E    finally:        return  'I am finally'print Div(1,'2')print Div(1,1)>>I am finally>>I am finally

     三.總結:

             本章記錄了函數的創建和基本使用。以及異常的使用. 還有很多需要后面繼續學習,比如:

            1.【Python中如何拋出異常,沒找到,.Net里面可以通過throw,畢竟在開發中遇到異常,有時候我們需要進一步封裝異常往上層代碼拋】

            2.【如何自定義異常,是類似于C#的繼承Exception類嗎?這個還得等后面幾天把Python抽象方面的知識學了才知道】

            3.【lamba的學習,fitter,map,reduce的學習.后面應該會用專門一個博客來記錄學習筆記.】

    

  

    

  

    


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云梦县| 扎囊县| 玛曲县| 嘉善县| 温泉县| 峨山| 上栗县| 临夏县| 砀山县| 江西省| 台东县| 左权县| 惠水县| 贵阳市| 三台县| 襄城县| 十堰市| 瑞昌市| 莱州市| 太原市| 红安县| 西安市| 鞍山市| 色达县| 锡林郭勒盟| 泾源县| 上杭县| 新津县| 郓城县| 桑日县| 清水河县| 民权县| 佳木斯市| 舞钢市| 南岸区| 定远县| 峨眉山市| 郎溪县| 织金县| 达孜县| 偏关县|