標籤:並且 traceback div most reference 錯誤 color 介紹 day
其他語言中else只可以和if進行組合,也就是我們常見的if...else,但是python為else賦予了新的聲明。它可以和while 、for 、try一起串聯使用。
下面我們介紹和while串聯使用時的效果。
count=0while count>12: if (11>0): print("成立") break count+=1else: print(‘不成立‘) #當while條件不成立,直接跳到該處輸出
for 迴圈和while用法一樣的
def forelse(): c = [1,2] for i in c: print(i) else: print("輸出") #當for迴圈結束會輸出該語句
try 的用法
def tryelse(): try: sum = 1+1 except TypeError as reason: print("報錯") else: print("到我這裡了") #當try塊中的語句正常執行完畢會執行該方法。
with ...:用法
# 第一種寫法def withas(): try: f = open("文字.txt") print(f.read()) f.close() except OSError as reason: print("讀取錯誤") else: print("完成")# 第二種寫法 with,一定不要忘記 : 哦def withas2(): try: with open("文字.txt") as f: print(f.read()) f.close() except OSError as reason: print("讀取錯誤") else: print("完成")
為什麼會用到with,是因為有的時候我們可能在使用open(file)開啟一個檔案的時候,可能這個檔案並不存在,那麼這個時候就會報錯,而我們可能會將這種方法卸載一個try except finally這樣的語句裡,並且在finally裡邊可能添加了f.close()這樣的語句,但是我們這個時候並沒有開啟一個f的檔案,因為這個檔案並不存在,所以沒有必要關閉這個檔案。這時候我們就用到了with。
錯誤碼展示:
def withas1(): try: f = open("文字1.txt") #該檔案不存在哦 print(f.read()) except OSError as reason: print("讀取錯誤") finally: f.close() #--------------錯誤輸出讀取錯誤Traceback (most recent call last): File "E:/python/day-2/whileelse.py", line 46, in <module> withas1() File "E:/python/day-2/whileelse.py", line 44, in withas1 f.close()UnboundLocalError: local variable ‘f‘ referenced before assignment>>>
從錯誤輸出我們就可以看到,報的錯誤是局部變數錯誤,說的就是f並不存在,也就是沒有開啟這個檔案。
python,中使用while...else 和 for...else 還有try...else,另外就是運用with關鍵字