目錄:
一、豐富的else語句
二、簡潔的with語句
三、課時34課後習題及答案
***********************
一、豐富的else語句
***********************
1、要麼怎樣,要麼不怎樣
典型的if-else搭配:
if條件: 條件為真執行 else: 條件為假執行
2、幹完了能怎樣,幹不完就別想怎樣
else語句可以跟for和while迴圈語句配合使用,但是else語句塊只再迴圈完成後執行,也就是說,如果迴圈中間使用break語句跳出迴圈,那麼else裡邊的內容就不會執行了。舉個例子:
def showMaxFactor(num): count = num // 2 while count > 1: if num % count == 0: print('%d最大的約數是%d' % (num, count)) break count -= 1 else: print('%d是素數!' % num) num = int(input('請輸入一個數:')) showMaxFactor(num)
這個小程式主要是要求使用者輸入的數的最大約數,如果是素數的話就順便提醒一下”這是一個素數“。注意要使用地板除法(count = num // 2)哦,否則結果會出錯。使用暴力的方法一個一個嘗試(num % count == 0),如果符合條件則列印最大的約數,並break,同時不會執行else語句塊的內容了。如果一直沒遇到合適的條件,則會執行else語句塊內容。
for語句的用法和while一樣,這裡就不重複舉例了。
3、沒有問題,那就幹吧
else語句還能跟剛剛學的異常處理進行搭配,實現跟與迴圈語句搭配差不多:只要try語句塊裡沒有出現任何異常,那麼就會執行else語句塊裡的內容了。舉個例子:
try: int("abc") except ValueError as reason: print("出錯啦" + str(reason)) else: print("沒有任何異常")
***********************
二、簡潔的with語句
***********************
也許會覺得開啟檔案又要關閉檔案,還要關注異常處理有些煩人,所以Python提供了一個with語句,利用這個語句抽象除檔案操作中頻繁使用的try/except/finally相關的細節。對檔案操作使用with語句,將大大減少程式碼量,而且你再也不用擔心出現檔案開啟了忘記關閉的問題了(with會自動幫你關閉檔案)。舉個例子:
try: f = open("data.txt","x") for each_line in f: print(each_line) except OSError as reason: print("出錯啦" + str(reason)) finally: f.close()
使用with語句,可以改成這樣:
try: with open("data.txt","x") as f: for each_line in f: print(each_line) except OSError as reason: print("出錯啦" + str(reason))
是不是很方便呢?有了with語句後,就再也不用擔心忘記關閉檔案了。
*******************************
三、課時34課後習題及答案
*******************************