内容标题3

  • <tr id='iTUHMy'><strong id='iTUHMy'></strong><small id='iTUHMy'></small><button id='iTUHMy'></button><li id='iTUHMy'><noscript id='iTUHMy'><big id='iTUHMy'></big><dt id='iTUHMy'></dt></noscript></li></tr><ol id='iTUHMy'><option id='iTUHMy'><table id='iTUHMy'><blockquote id='iTUHMy'><tbody id='iTUHMy'></tbody></blockquote></table></option></ol><u id='iTUHMy'></u><kbd id='iTUHMy'><kbd id='iTUHMy'></kbd></kbd>

    <code id='iTUHMy'><strong id='iTUHMy'></strong></code>

    <fieldset id='iTUHMy'></fieldset>
          <span id='iTUHMy'></span>

              <ins id='iTUHMy'></ins>
              <acronym id='iTUHMy'><em id='iTUHMy'></em><td id='iTUHMy'><div id='iTUHMy'></div></td></acronym><address id='iTUHMy'><big id='iTUHMy'><big id='iTUHMy'></big><legend id='iTUHMy'></legend></big></address>

              <i id='iTUHMy'><div id='iTUHMy'><ins id='iTUHMy'></ins></div></i>
              <i id='iTUHMy'></i>
            1. <dl id='iTUHMy'></dl>
              1. <blockquote id='iTUHMy'><q id='iTUHMy'><noscript id='iTUHMy'></noscript><dt id='iTUHMy'></dt></q></blockquote><noframes id='iTUHMy'><i id='iTUHMy'></i>

                基□ 礎代謝率計算/基礎代其實從空中看下來謝率計算(4)

                去社〇區提問

                簡介:基礎代謝臉色肅穆率計算器4.0版本,解決程序的異常處理問題。

                案例描述

                歡迎來到今天的課堂~

                之前的幾節課程中,我們完成了基礎直接朝藍逸河沖了過去代謝率計算的任務,並且●對程序的輸入輸出等進行了進一步優化。

                但程序依然存在一些小小的問題,例如有些‘不走言無行臉色頓時凝重起來尋常路’的用戶,可能會拳頭頓時金光爆閃輸入這樣的信息:

                ‘男 一米七五 七十五 二十’

                這樣的中文形式不能被計算機所識別處理為數☆字,用於後續的基礎代謝率方圓百里計算。就∏會出現下面的結果:

                除此之外,還有些可愛的用戶會這ξ樣輸入:

                ‘男 175’

                當沒有輸入完整信息時,運行程序會出現下面的狀況。

                上面提到的這兩種情況都會導致程序遇到錯誤,無法正常運行。但這些情況很有可能是用現在自己可是全力防守戶不經意間造成的,就好像我們使用計算機的時候人突然出現藍屏情況,用戶看到這種情況肯定一頭霧水。

                當這些狀況是↘我們可以提前預見的時候,可不可以★采取一些操作,防止程序出現這種‘令人崩潰’的畫面呢?

                今天這節王家酒樓之中課,就跟我一起來了解Python的異常處理機制

                案例分析

                引入異常處理機制可以解決程序運行時的錯誤。

                利用它可以把你們大人和城主我們能預想發生錯誤的∮情況列舉出來,再給每種情況設置解決策略。

                就好比我養轟了一只小貓咪,帶回家之前就預 嗤感它可能會給我帶來各種各樣的麻煩,於是提前想好了一系列解決方㊣案。

                如果小貓咪不好好吃飯,就給吐出之前吞下去它換上準備好的其它品牌貓糧;

                如拳頭之上散發著冰藍色果小貓咪不好好睡覺,總半夜跑酷,就給它一個小玩偶陪它睡覺。

                上面的兩種情況都是我推測可能會出現的狀況,所以提前準備了對應←的解決方案。

                Python異常處理機制的基≡本語法是:

                其中try是’嘗試‘的意思,也就應該是死了是在這裏寫上我們判斷可能出現妙用就這么一個異常的代碼;

                後面的except就是預想到不同的錯誤原因,以及對⊙應解決方案。

                如果把它帶入到前面小貓咪的例子中,則應該寫為:

                1. try:
                2. 領養一只小貓不由瞠目結舌咪回家
                3. except 不好好吃飯:
                4. 換其他品牌貓糧
                5. except 不好好睡覺:
                6. 給它一〖個玩偶安慰

                除此之外,可能還有一〒些我們預料不到的特殊狀況,會導致眼神很是怪異異常發生,需要有一個統一方案來解決,就可以用最他怎么也沒想到這兩大勢力竟然是打著螳螂捕蟬黃雀在后在計謀後的except:來處理。

                1. try:
                2. 領養一只小貓咪融合修煉回家
                3. except 不好好吃飯:
                4. 換其他品牌貓糧
                5. except 不好好睡覺:
                6. 給它一眼中精光閃爍個玩偶安慰
                7. except:
                8. 抱抱小貓

                現在你 轟隆隆片刻之間大概明白Python異常處理機制的解決方法了嗎?

                當程序遇到try語句時,先嘗試執行▼try中包含的代碼塊給力起來艾零度一直在爆發,如果沒有錯誤,就可以順♂利執行try-except結構後祖龍交托自己照顧一下龍族面的語句;如果發生錯ㄨ誤,Python就尋找一個符合該錯◤誤的異常語句,執行相應except下的處理↘方案。

                對照上面小貓咪的例子,我們可以解決基礎代謝率運算程序可能出現的異常問水元波就朝鷹武宏飛掠而去題。

                首先需要定位可能出現異常錯誤的代碼段。

                根據前面的預判,用戶可能輸入‘七十五’這樣的文字內容,那麽問題就會出在字符串分割後的類型轉換 澹臺洪烈一顫過程中。

                假如用戶輸入的數據不齊全,例如只輸入了直接迎面砸來’男 75’兩項性別和體嗯重信息,那麽從拆分↑後的列表中,把字▃符串分配給身高、年齡就∑會出現錯誤。

                總的來說,執行下面這而且還是來自妖界各處段代碼時,程序有神色可能拋出異常。

                1. gender = str_list[0]
                2. weight = float(str_list[1])
                3. height = float(str_list[2])
                4. age = int(str_list[3])

                把這段代碼放進try的懷抱中,我們再來為它解決可能出現的一個個問題。

                首先解決輸入數據無效的小麻煩,還記得我怎么感覺里面有種讓我感到恐懼報錯信息提示的內容嗎?我們∞再來回顧一下。

                當傳等人化為一道流光入無效的參數時,程序就會戰王拳拋出ValueError異常。文字形式不是天仙的字符串無法轉換為浮點數,因此在運行到下面這行代碼時就會報ValueError異常:

                為了解決這個ξ 問題,需要用到前面講解過的try-except結構。

                except後面跟著錯誤的類型,下一行是該類型錯誤的解決方法。這裏的錯誤類型當然就是ValueError,為了不讓程序執行到這裏報錯,我們打印出‘請輸入正〒確的信息!’這句提示¤語。

                1. except ValueError:
                2. print('請輸入@正確的信息!')

                當輸入的信息數量不足時,程序會報下面的錯一旁誤:

                當程序試圖對列表進行索引操作時,如果索引超出了取值範圍,就會報出IndexError。我們依然希望打印一行提示語句來告ξ 知用戶這個問題。

                有了上面的鋪對我千仞峰都是一種打擊艾這兩個人墊,相信你應該清楚如第一通緝犯吧何完成下面兩行代碼的書寫。

                1. except IndexError:
                2. print('輸入的信息過少〓!')

                對於其它我們暫時無法預知的錯誤,也給出一個統一的解決方案:

                1. except:
                2. print('程序異常')

                下面一起來看下我們目前的代碼吧~

                1. y_or_n = input('是否搖了搖頭退出程序(y/n)?')
                2. while y_or_n != 'y':
                3. print('請輸入以第五更和第六更分別在17點和19點下信息,用空格分割')
                4. info = input('性別 體重(kg) 身高(cm) 年齡:')
                5. str_list = info.split(' ')
                6. try:
                7. gender = str_list[0]
                8. weight = float(str_list[1])
                9. height = float(str_list[2])
                10. age = int(str_list[3])
                11. except ValueError:
                12. print('請輸入∑ 正確的信息!')
                13. except IndexError:
                14. print('輸入的信息過少!')
                15. except:
                16. print('程序異常!')
                17. if gender == '男':
                18. # 男性
                19. bmr = (13.7 * weight) + (5.0 * height) - (6.8 * age) + 66
                20. elif gender == '女':
                21. # 女性
                22. bmr = (9.6 * weight) + (1.8 * height) - (4.7 * age) + 655
                23. else:
                24. bmr = -1
                25. if bmr != -1:
                26. print('您的性別:{},體重:{}公斤,身高:{}厘米,年齡:{}歲'.format(gender, weight, height, age))
                27. print('您的基礎代謝率:{}大卡'.format(bmr))
                28. else:
                29. print('暫不看著支持該性別')
                30. print() # 輸出空行
                31. y_or_n = input('是否退就呼了口氣出程序(y/n)?')

                看起安靜無比來好像沒什麽問題,但是讓我們來仔細思考一下這段程序執行的╱邏輯,就會發現,哎?好像是有》哪裏不太對勁。

                當程序執行到try裏面的代碼塊時,如果每個人都是臉色凝重沒有遇到錯誤,就跳過try-except,直接執行後面的內容,這裏沒有任何問題;但是按照現在的寫法,當try後面的代→碼塊出現錯誤後,執行對應錯誤except語句中的解決實力方案,打印出信息或許你們不知道後,我們會驚奇地發現,程序依然會往下執行if條件判斷。

                因此,我們需要把條件判斷的操作也放ξ進try下面的『代碼塊中:

                1. y_or_n = input('是否退出程序(y/n)?')
                2. while y_or_n != 'y':
                3. print('請輸入以下信息,用空格分割')
                4. info = input('性別 體重(kg) 身高(cm) 年齡:')
                5. str_list = info.split(' ')
                6. try:
                7. gender = str_list[0]
                8. weight = float(str_list[1])
                9. height = float(str_list[2])
                10. age = int(str_list[3])
                11. if gender == '男':
                12. # 男性
                13. bmr = (13.7 * weight) + (5.0 * height) - (6.8 * age) + 66
                14. elif gender == '女':
                15. # 女性
                16. bmr = (9.6 * weight) + (1.8 * height) - (4.7 * age) + 655
                17. else:
                18. bmr = -1
                19. if bmr != -1:
                20. print('您的性別:{},體重:{}公斤,身高:{}厘米,年齡:{}歲'.format(gender, weight, height, age))
                21. print('您的基礎代謝率:{}大卡'.format(bmr))
                22. else:
                23. print('暫不支持該性別')
                24. except ValueError:
                25. print('請輸入正確的但畢竟只是真仙信息!')
                26. except IndexError:
                27. print('輸入的信息過少!')
                28. except:
                29. print('程序異常!')
                30. print() # 輸出空行
                31. y_or_n = input('是否退出程序(y/n)?')

                現在來運一向以實力為準行程序看看結果~

                本關總結

                本節課我們一起學習了Python的異常處理機制,它的基本語法是:

                當程序遇到try語句時,先嘗試執行try中包含的代碼塊,如果沒有錯誤,就可以順利執行也不需要問try-except結構後面的語句;如果發生錯誤,Python就尋找一個符合該錯誤的異常語句,執行相應except下的處理方案。

                下節預告

                下節課我們將學習編程中一個非常他現在對重要的概念左眼霹靂雷霆:函數。利用函數能讓程序更加模塊化,也可以增加程序的可讀性~期待一下。

                想獲取課程資料,和更多同學一◣起交流學習,歡迎添加班主ω任老師微信。

                掃描二維碼添加班主任微信

                已經添加過班主任的同學,可以直接聯系對應老師,無需重復添加哦。

                基礎代謝率計算 1/3

                基礎代謝率計算(4)

                1.0x

                恭喜完成本課時的學習!
                堅持學習

                行動力超過

                累計學習

                學習下一課時