如何使用 Python 不等於和等於運算符
已發表: 2022-01-29在 Python 中,您可以使用不等於和等於運算符來檢查兩個 Python 對像是否具有相同的值。 本教程將通過大量示例代碼教您如何使用這些運算符。
在本教程中,您將學習:
- 不等於(
!=
) 運算符和用例的語法, - 帶有示例的等號運算符 (
==
) 的語法,以及 - 使用
is
和is not
運算符來檢查任何兩個 Python 對象的身份。
讓我們開始吧。
Python 不等於運算符語法
對於任何兩個 Python 對象obj1
和obj2
,使用不等於運算符的一般語法是:
<obj1> != <obj2>
- 當
obj1
和obj2
的值不相等時返回True
,並且 - 否則返回
False
。
注意:如上所述,
obj1
和obj2
可以是整數、浮點數、字符串、列表等。
Python 不等於運算符代碼示例
在本節中,讓我們編寫一些示例來更好地理解不等於運算符。
使用 Python 不等於運算符進行比較
這是我們的第一個例子。
num1 = 27 num2 = 3*9 num1 != num2 # Output: False
您可以直接從瀏覽器在 Geekflare Python IDE 上運行代碼示例。 或者您可以選擇在本地機器上運行。
由於num1 = 27
並且num2
的計算結果也為27
( 3*9 = 27
),因此num1
和num2
的值相等。 所以!=
運算符返回False
。
讓我們再舉一個例子。
在下面的代碼中, num1
設置為num2
設置為字符串 7。由於它們的數據類型不同,不等於運算符返回True
。
num1 = 7 num2 = "7" num1 != num2 # Output: True
您將字符串轉換為整數,如下所示:
num1 = 7 num2 = int("7") num1 != num2 # Output: False
在這種情況下,您可以看到返回的結果為False
— 因為num1
和num2
現在等於整數 7。
您還可以將不等於運算符用於 Python 集合,例如列表、元組和集合。
注意:對於列表等數據集合,不等於運算符通過檢查單個項目的值來工作。 例如,兩個列表
list1
和list2
(每個長度為n
)只有當list1[i] == list2[i]
fori
in{0,1,2,3,..n-1}
時才相等。
這是一個例子:
list1 = [2,4,6,8] list2 = [2,4,6,9] list1 != list2 # Output: True
在上面的示例中, list1
和list2
僅相差一個元素。 不等於!=
運算符按預期返回True
。
在條件語句中使用 Python 不等於運算符
你會經常使用不等於運算符作為 Python 條件的一部分。
例如,下面的代碼片段顯示瞭如何檢查數字是否為奇數。
不能被 2 整除的數是奇數。 這減少到條件
num%2 != 0
。
num = 7 if(num%2 != 0): print("The number is odd.") else: print("The number is even.") # Output: The number is odd.
當您只想保留那些滿足特定條件的列表元素時,您還可以在列表推導中使用條件。 在下面的示例中, odd_10
是所有小於 10 的奇數的列表。
odd = [num for num in range(10) if num%2 != 0] print(odd) # Output: [1, 3, 5, 7, 9]
這就完成了我們對不等於 ( !=
) 運算符的討論。
正如您現在可能已經猜到的那樣,等於運算符會產生與不等於運算符相反的效果。
您將在下一節中了解有關它的更多信息。
Python 等號運算符語法
這是使用 Python 的等於運算符的語法:
<obj1> == <obj2> #where <obj1> and <obj2> are valid Python objects
- 當
obj1
和obj2
的值相等時返回True
,並且 - 否則返回
False
。
Python 等號運算符代碼示例
等於運算符 ( ==
) 的使用與不等於運算符非常相似。
讓我們編寫以下示例:
- 檢查兩個字符串是否相等,
- 檢查一個數字是否是偶數,並且
- 在列表理解中使用條件
使用 Python 不等於運算符進行比較
在下面的代碼片段中, str1
和str2
的值相等。 所以等號運算符 ( ==
) 返回True
。
str1 = "coding" str2 = "coding" str1 == str2 # Output: True

現在讓我們在條件表達式中使用等號運算符。

注意:能被 2 整除的數是偶數。 在代碼中,這減少到條件
num%2 == 0
num = 10 if(num%2 == 0): print("The number is even.") else: print("The number is odd.") # Output: The number is even.
現在讓我們以這個例子為基礎,使用 Python 的列表推導式來獲取所有小於 10 的偶數。
even_10 = [num for num in range(10) if num%2 == 0] print(even_10) # Output: [0, 2, 4, 6, 8]
在上面的例子中,
-
range(10)
返回一個範圍對象,可以循環獲取從 0 到 9 的所有整數。 - 條件
True
num%2 == 0
僅適用於偶數。 - 所以
even_10
是所有小於 10 的偶數的列表。
到目前為止,您已經學習瞭如何使用不等於( !=
) 和等於( ==
) 運算符來檢查相等性。
在下一節中,您將學習如何驗證兩個對象的身份。 您將檢查兩個 Python 對像是否相同。
如何使用 Python 的 is 和 is not 運算符
如果您是 Python 編程的初學者,您可能會對==
和is
運算符感到困惑。 讓我們在本節中澄清這一點。
在上一節中,我們有一個示例,其中str1
和str2
相等且==
運算符返回True
。
現在運行以下代碼片段。
str1 = "coding" str2 = "coding" str1 is str2 # Output: False
可以看到str1 is str2
返回False
。
讓我們退後一步,了解 Python 的is
運算符的作用。
is
運算符對任意兩個 Python 對象進行操作。
並且僅當兩個對象相同時才返回True
——即它們引用內存中的同一個對象。
即使str1
等於str2
, str1
也不是str2
因為它們指向內存中的兩個不同對象。 因此,他們有不同的身份。

在 Python 中,您可以使用id()
函數來獲取對象的標識。
運行以下代碼單元以獲取str1
和str2
的標識。
id(str1) # Sample output: 139935398870320 id(str2) # Sample output: 139935398871344
如您所見, str1
和str2
具有不同的標識。 並且str1 is str2
按預期返回False
。
把它放在一起,
<obj1> is <obj2> # returns True if and only if id(<obj1>) == id(<obj2>) # returns True
讓我們快速驗證一下,如圖所示:
str1 = "coding" str2 = str1 print(str1 is str2) print(id(str1) == id(str2)) # Output True True
直觀地說, is not
運算符與is
運算符相反。
is not
運算符對任意兩個 Python 對象進行操作。
並且僅當兩個對象相同時才返回False
——即它們引用內存中的同一個對象。 否則,它返回True
。
在上面的代碼示例中,嘗試用is not
替換is
並檢查結果。
結論
希望本教程對您有所幫助。
總而言之,您學到了:
- 如何使用等於(
==
) 和不等於(!=
) 運算符來檢查兩個 Python 對像是否具有相同的值, - Python對象的相等性和同一性之間的區別,以及
- Python 的
is
和is not
運算符如何幫助檢查兩個 Python 對像是否相同。
在此處了解如何計算時差或在 python 中製作蛇遊戲。
下一篇教程見。 在那之前,快樂的學習和編碼!