1. 程式人生 > 其它 >可迭代物件、迭代器、以及for迴圈的本質

可迭代物件、迭代器、以及for迴圈的本質

目錄

常用內建函式

	# map() 對映
	# zip()拉鍊
	# max() 求最大值
	# min()  求最小值
	# fliter() 過濾
	# reduce()歸總
  • map()

  • zip()

  • max() min()


  • filter()

  • redude()

可迭代物件

# 迭代 即更新換代 每次更新都必須依賴於上一次的結果
'迭代其實就是給了我們一種不依賴於索引取值的方式,比如字典,集合'
# 可迭代物件:
# 內建有_ _iter_ _的方法都稱為可迭代物件(可以通過句點符看到的就是內建方法)

 """
    針對雙下滑線開頭 雙下滑線結尾的方法 最為專業標準的讀法為
    	雙下方法名
    	面向物件的時候為了與隱藏變數區分開
    """
	
"""
含有__iter__的有
    字串 列表 字典 元組 集合 檔案物件
上述通常為可迭代物件
"""
  • 布林值 整型 浮點型不是可迭代物件

"""
可迭代物件呼叫__iter__方法會變成迭代器物件(老母豬)

__iter__方法在呼叫的時候還有一個簡便的寫法iter()
    一般情況下所有的雙下方法都會有一個與之對應的簡化版本 方法名()
"""

迭代器物件

# 即含有_ _iter_ _方法又含有_ _next_ _方法叫做迭代器物件
# 如何生成可迭代物件 :
# 讓迭代物件執行_ _iter_ _就可以變成可迭代物件

'''
檔案本身既是可迭代物件又是迭代器物件

一個迭代器物件無論執行多少次_ _iter_ _方法 還是一個迭代器物件(本身)

迭代器物件給了我們不依賴於迴圈取值的的方法
'''


for迴圈的本質

'''
for迴圈內部原理
    1.將關鍵字in後面的資料先呼叫__iter__方法轉為迭代器物件
    2.迴圈執行__next__方法
    3.取完之後__next__會報錯 但是for迴圈會自動捕獲該錯誤並處理
'''

異常捕獲

# 什麼是異常
# 異常就是程式碼執行出錯會導致異常 異常發生後 如果沒有解決 整個程式都會停止執行

# 異常的三個組成部分
# 1.traceback
# 到最下面從下往上的第一個藍色字型滑鼠左鍵點選即可跳轉到錯誤的程式碼所在的行

# 2.XXXError
# 錯誤的型別

# 3.錯誤型別冒號後面的內容
# 錯誤的詳細原因(很重要 仔細看完之後可能就會找到解決的方法)


# 錯誤的種類
# 1.語法錯誤
# 這種錯誤是絕對不被允許的,是最低階的錯誤

# 2.邏輯錯誤
# 這個是可以被允許的,每個程式設計師都會遇到邏輯錯誤,也就是BUG,但是這個要儘快修改


如何解決異常

# 語法結構

# try:
#     int('abc')
# except NameError as e:
#     print('變數名name不存在',e)
# except ValueError:
#     print('值不是純數字')


# 萬能異常
try:
    # int('abc')
    print(name)
    # l = [11]
    # l[100]
except Exception:
    print('你來啥都行 無所謂')

	# 異常捕獲和萬能異常儘量少用
	# 被檢測的程式碼一定要越少越好
	# 異常捕獲使用的頻率越低越好