天池python訓練營D3

derek_dz發表於2020-12-21

學習目標:

回顧並鞏固python知識
D3 異常處理

學習內容:

Python 標準異常總結

BaseException:所有異常的 基類
Exception:常規異常的 基類
StandardError:所有的內建標準異常的基類
ArithmeticError:所有數值計算異常的基類
FloatingPointError:浮點計算異常
OverflowError:數值運算超出最大限制
ZeroDivisionError:除數為零
AssertionError:斷言語句(assert)失敗
AttributeError:嘗試訪問未知的物件屬性
EOFError:沒有內建輸入,到達EOF標記
EnvironmentError:作業系統異常的基類
IOError:輸入/輸出操作失敗
OSError:作業系統產生的異常(例如開啟一個不存在的檔案)
WindowsError:系統呼叫失敗
ImportError:匯入模組失敗的時候
KeyboardInterrupt:使用者中斷執行
LookupError:無效資料查詢的基類
IndexError:索引超出序列的範圍
KeyError:字典中查詢一個不存在的關鍵字
MemoryError:記憶體溢位(可通過刪除物件釋放記憶體)
NameError:嘗試訪問一個不存在的變數
UnboundLocalError:訪問未初始化的本地變數
ReferenceError:弱引用試圖訪問已經垃圾回收了的物件
RuntimeError:一般的執行時異常
NotImplementedError:尚未實現的方法
SyntaxError:語法錯誤導致的異常
IndentationError:縮排錯誤導致的異常
TabError:Tab和空格混用
SystemError:一般的直譯器系統異常
TypeError:不同型別間的無效操作
ValueError:傳入無效的引數
UnicodeError:Unicode相關的異常
UnicodeDecodeError:Unicode解碼時的異常
UnicodeEncodeError:Unicode編碼錯誤導致的異常
UnicodeTranslateError:Unicode轉換錯誤導致的異常

Python標準警告總結

Warning:警告的基類
DeprecationWarning:關於被棄用的特徵的警告
FutureWarning:關於構造將來語義會有改變的警告
UserWarning:使用者程式碼生成的警告
PendingDeprecationWarning:關於特性將會被廢棄的警告
RuntimeWarning:可疑的執行時行為(runtime behavior)的警告
SyntaxWarning:可疑語法的警告
ImportWarning:用於在匯入模組過程中觸發的警告
UnicodeWarning:與Unicode相關的警告
BytesWarning:與位元組或位元組碼相關的警告
ResourceWarning:與資源使用相關的警告

異常丟擲

try - except - (else) - (finally)
try:
檢測範圍
except Exception[as reason]:
出現異常後的處理程式碼
else:
如果沒有異常執行這塊程式碼
finally:
無論如何都會被執行的程式碼

raise語句
直接丟擲異常
try:
raise Error()

練習題

1. 猜數字遊戲
題目描述:
電腦產生一個零到100之間的隨機數字,然後讓使用者來猜,如果使用者猜的數字比這個數字大,提示太大,否則提示太
小,當使用者正好猜中電腦會提示,“恭喜你猜到了這個數是…”。在使用者每次猜測之前程式會輸出使用者是第幾次猜
測,如果使用者輸入的根本不是一個數字,程式會告訴使用者"輸入無效".
(嘗試使用try catch異常處理結構對輸入情況進行處理)
獲取隨機數採用random模組。

import random
 
def guess():
    num=random.randint(0,100)
    print(num)
    n=1
    guess=-1
    while(guess!=num):
        print("第",n,"次猜,請猜一個零至一百的整型數字:")
        try:
            guess=int(input())
            if guess-num==0:
                print('恭喜你猜到了這個數是',num)            
                break
            elif(guess>num):
                print("猜大了")
            else:
                print("猜小了")
        except ValueError:
            print("輸入無效")
        n=n+1

guess()

相關文章