python,中使用while...else 和 for...else 還有try...else,另外就是運用with關鍵字


  其他語言中else只可以和if進行組合,也就是我們常見的if...else,但是python為else賦予了新的聲明。它可以和while 、for 、try一起串聯使用。

  下面我們介紹和while串聯使用時的效果。

count=0
while count>12:
    if (11>0):
        print("成立")
        break
    count+=1
else:
    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並不存在,也就是沒有打開這個文件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM