標籤:

Day6-2,變數作用域(全局變數),異常處理

一、變數的作用域

  1. 定義: 變數可以使用的範圍,python中, 只有模塊, 類, 函數會引入新的作用域;if, elif, while,for不會引入新的作用域。

def sum(x, y): sum_ = x+y # sum_局部變數 print(sum_)sum(10,20)print(sum_) # 會報錯,sum_只作用在函數區域裡面,出來之後就不存在了

如果想在函數外引用局部變數,就需要先將局部變數轉換成全局變數。

全局變數:全局變數的作用域為整個腳本。關鍵字 global

def sum(x, y): global sum_ # 把局部變數sum_轉換成全局變數 sum_ = x+y # sum_局部變數 print(sum_)sum(10,20)print(sum_) # 現在就可以訪問了

二、異常處理

1. 定義:定義: 當程序遇到問題時不讓程序結束,而是越過錯誤繼續執行

2. 常見的異常有:

BaseException 所有異常的基類SystemExit 解釋器請求退出KeyboardInterrupt 用戶中斷執行(通常是輸入^C)Exception 常規錯誤的基類StopIteration 迭代器沒有更多的值GeneratorExit 生成器(generator)發生異常來通知退出StandardError 所有的內建標準異常的基類ArithmeticError 所有數值計算錯誤的基類FloatingPointError 浮點計算錯誤OverflowError 數值運算超出最大限制ZeroDivisionError (或取模) (所有數據類型)AssertionError 斷言語句失敗AttributeError 對象沒有這個屬性EOFError 沒有內建輸入,到達EOF 標記EnvironmentError 操作系統錯誤的基類IOError 輸入/輸出操作失敗OSError 操作系統錯誤WindowsError 系統調用失敗ImportError 導入模塊/對象失敗LookupError 無效數據查詢的基類IndexError 序列中沒有此索引(index)KeyError 映射中沒有這個鍵MemoryError 內存溢出錯誤(對於Python 解釋器不是致命的)NameError 未聲明/初始化對象 (沒有屬性)UnboundLocalError 訪問未初始化的本地變數ReferenceError 弱引用(Weak reference)試圖訪問已經垃圾回收了的對象RuntimeError 一般的運行時錯誤NotImplementedError 尚未實現的方法SyntaxError Python 語法錯誤IndentationError 縮進錯誤TabError Tab 和空格混用SystemError 一般的解釋器系統錯誤TypeError 對類型無效的操作ValueError 傳入無效的參數UnicodeError Unicode 相關的錯誤UnicodeDecodeError Unicode 解碼時的錯誤UnicodeEncodeError Unicode 編碼時錯誤UnicodeTranslateError Unicode 轉換時錯誤Warning 警告的基類DeprecationWarning 關於被棄用的特徵的警告FutureWarning 關於構造將來語義會有改變的警告OverflowWarning 舊的關於自動提升為長整型(long)的警告PendingDeprecationWarning 關於特性將會被廢棄的警告RuntimeWarning 可疑的運行時行為(runtime behavior)的警告SyntaxWarning 可疑的語法的警告UserWarning 用戶代碼生成的警告

3. 語法結構:

try: 語句塊(可能會出現異常的代碼塊)except 錯誤碼1 as e: 處理1except 錯誤碼2 as e: 處理2finally: 語句finally語句始終會執行l = list(abc)try: print(l[6]) # 這個會報錯 IndexError print(hi) # 不會執行except Exception as e: # 所有異常的父類 print(e)finally: # 無論是否發生異常,都會執行 print(refresh..)print(GoGo) # 這個會執行

三、作業

1. 定義函數,實現任一數值以內的所有4的倍數

2. 定義函數,實現添加學生信息功能

3. 定義函數,實現隨機產生2個點的坐標信息

4. 定義函數,計算兩個點的距離

5. 定義函數,輸入浮點數,計算偏差在0.25以內的20個浮點數列


推薦閱讀:

FFmpeg精準時間切割視頻文件
用數據告訴你在上海你得這樣租(sheng)房(dian)子(qian)
Python實現邏輯斯蒂回歸
有哪些有趣的反爬蟲手段?
有多少人按@蕭井陌大神給出的Python+Flask路線找到工作了?

TAG:Python |