国产探花免费观看_亚洲丰满少妇自慰呻吟_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的學習.后面應該會用專門一個博客來記錄學習筆記.】

    

  

    

  

    


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉禾县| 垫江县| 上杭县| 浦北县| 黄梅县| 固始县| 金堂县| 涿州市| 通化市| 邳州市| 奇台县| 霍林郭勒市| 商南县| 资溪县| 巴塘县| 兴和县| 广州市| 东乌| 青海省| 东至县| 新野县| 沾益县| 陆川县| 金华市| 原平市| 关岭| 尼木县| 曲阜市| 寻乌县| 南涧| 安图县| 隆昌县| 行唐县| 廉江市| 巴中市| 沂水县| 齐齐哈尔市| 周宁县| 贵定县| 泰来县| 威宁|