Python基礎:詳解 a == b 和 a is b 的問題
阿新 • • 發佈:2020-08-14
首先我們要了解對於Python物件而言,一般存在三個屬性:type 型別, value 值 以及 地址id
- 1 a == b , 這是一個比較運算子,用於比較兩個物件的value(值)是否相同
相同則返回True 否則返回False
示例:# 以下用於示例 a == b 用法 >>> a = 1 # a, b 數值型別 >>> b = 1 >>> a == b True >>> a = 'zhaoxuan' # a,b 字串型別 >>> b = 'zhaoxuan' >>> a == b True
2 a is b , 這是一個同一性運算子。用於比較兩個物件的物理id。如果相同則返回True
否則返回False
示例:# 以下用於示意 a is b 用法: >>> a = -5 # a, b 數值型別 >>> b = -5 >>> a is b True >>> a = -6 >>> b = -6 >>> a is b False # 下面講解 >>> a = 256 >>> b = 256 >>> a is
-
綜上:
- 1 數值相同時 a == b 返回True,否則返回False
- 2 數值相同時 a is b 未必返回True
-
總結:
- Python為了優化效率,內建了小整數物件池和簡單字串物件池。
小整數物件池包括[-5, 256]。這之間的小整數數值相同時在小整數物件池中屬於同一物件
即是 a is b 返回True。簡單字串也是如此,對於其他物件則不適用
- Python為了優化效率,內建了小整數物件池和簡單字串物件池。
- 整理給新手與正在學習python的朋友:
- (Python學習書籍pdf版——————基礎-爬蟲-資料分析-機器學習-web,五大方向書籍應有盡有!現已上傳50本,持續更新中)
- (Python學習教程———————專案實戰-專案原始碼-python環境搭建必要安裝檔案,正在整理更新中)
- 花了挺長時間去辦這件事情的,需要的點選我主頁就能找到這篇文章,或者直接點選下方字型跳轉:
- 你想要的,應有盡有!50本python學習書籍獲取地址/安裝材料/python高質量基礎進階教程