📜  != 和不是Python的运算符之间的区别

📅  最后修改于: 2021-09-13 02:54:57             🧑  作者: Mango

在本文中,我们将看到!= (Not equal)运算符。在Python!=被定义为不等于运算符。如果两边的操作数不相等返回true,并返回false,如果他们是平等的。而不是运算符检查两个对象的 id() 是否相同。如果相同,则返回False ,如果不相同,则返回True。如果任一侧的操作数彼此不相等,则is not运算符返回 True,如果相等则返回 false。

让我们一一理解概念:

示例 1:

Python3
a = 10
b = 10
  
print(a is not b)
print(id(a), id(b))
  
c = "Python"
d = "Python"
print(c is not d)
print(id(c), id(d))
  
e = [1,2,3,4]
f = [1,2,3,4]
print(e is not f)
print(id(e), id(f))


Python3
# Python3 code to 
# illustrate the 
# difference between
# != and is operator
  
a = 10
b = 10
print(a != b)
print(id(a), id(b))
  
c = "Python"
d = "Python"
print(c != d)
print(id(c), id(d))
  
e = [ 1, 2, 3, 4]
f=[ 1, 2, 3, 4]
print(e != f)
print(id(e), id(f))


Python3
# Python3 code to 
# illustrate the 
# difference between
# != and is not operator
# [] is an empty list
list1 = []
list2 = []
list3 = list1
  
#First if
if (list1 != list2):
    print(" First if Condition True")
else:
    print("First else Condition False")
      
#Second if
if (list1 is not list2):
    print("Second if Condition True")
else:
    print("Second else Condition  False")
      
#Third if
if (list1 is not list3):
    print("Third if Condition True")
else: 
    print("Third else Condition False")
  
list3 = list3 + list2
  
#Fourth if
if (list1 is not list3):
    print("Fourth if Condition True")
else: 
    print("Fourth else Condition False")


输出:

False
140733278626480 140733278626480
False
2693154698864 2693154698864
True
2693232342792 2693232342600

解释:

  1. 首先对于整数数据,输出为假,因为变量 a、b 都指向相同的数据 10。
  2. 其次,对于字符串数据,输出为假,因为变量 c、d 都指向相同的数据“Python”。
  3. 第三个列表数据输出为真,因为变量 e、f 具有不同的内存地址。(即使两个变量具有相同的数据)

示例 2:

!=被定义为不等于运算符。如果两边的操作数不相等返回true,并返回false,如果他们是平等的。

蟒蛇3

# Python3 code to 
# illustrate the 
# difference between
# != and is operator
  
a = 10
b = 10
print(a != b)
print(id(a), id(b))
  
c = "Python"
d = "Python"
print(c != d)
print(id(c), id(d))
  
e = [ 1, 2, 3, 4]
f=[ 1, 2, 3, 4]
print(e != f)
print(id(e), id(f))

输出:

False
140733278626480 140733278626480
False
2693154698864 2693154698864
False
2693232369224 2693232341064

示例 3:

!=运算符比较两个对象的值或相等性,而Python is not运算符检查两个变量是否指向内存中的同一个对象。

蟒蛇3

# Python3 code to 
# illustrate the 
# difference between
# != and is not operator
# [] is an empty list
list1 = []
list2 = []
list3 = list1
  
#First if
if (list1 != list2):
    print(" First if Condition True")
else:
    print("First else Condition False")
      
#Second if
if (list1 is not list2):
    print("Second if Condition True")
else:
    print("Second else Condition  False")
      
#Third if
if (list1 is not list3):
    print("Third if Condition True")
else: 
    print("Third else Condition False")
  
list3 = list3 + list2
  
#Fourth if
if (list1 is not list3):
    print("Fourth if Condition True")
else: 
    print("Fourth else Condition False")

输出:

First else Condition False
Second if Condition True
Third else Condition False
Fourth if Condition True

解释:

  1. 如果条件为“False”,则第一个的输出,因为 list1 和 list2 都是空列表。
  2. 其次,如果条件显示“真”,因为两个空列表位于不同的内存位置。因此 list1 和 list2 指的是不同的对象。我们可以用Python的id()函数检查它,它返回一个对象的“身份”。
  3. 如果条件为“False”,则第三个的输出,因为 list1 和 list3 都指向同一个对象。
  4. 如果条件为“True”,则第四个的输出,因为两个列表的连接总是会产生一个新列表。