如何使用 Python 不等于和等于运算符

Python 中相等和不等运算符的使用详解

在Python编程中,我们经常需要比较两个对象的值是否相同。Python提供了相等运算符(==)和不等运算符(!=)来实现这一目标。本教程将通过丰富的示例代码,深入探讨这两个运算符的用法。

通过本教程,你将掌握:

  • 不等运算符(!=)的语法和应用场景
  • 相等运算符(==)的语法及其使用示例
  • 使用“is”和“is not”运算符来判断Python对象的身份,即它们是否指向内存中的同一位置。

让我们开始探索吧!

Python 不等运算符的语法

对于任意两个Python对象 obj1obj2,使用不等运算符的语法结构如下:

<obj1> != <obj2>
  • obj1obj2的值不相等时,该表达式返回 True
  • 否则,返回 False

需要注意的是,obj1obj2可以是各种不同的数据类型,如整数、浮点数、字符串、列表等。

Python 不等运算符的示例代码

下面我们通过一些具体的示例,加深对不等运算符的理解。

不等运算符在数值比较中的应用

这是我们的第一个例子:

num1 = 27
num2 = 3 * 9

num1 != num2

# 输出结果: False

你可以直接在任何Python环境中运行这些代码示例。 num1的值为27,而num2的计算结果也是27 (3*9 = 27),因此num1num2的值相等,所以不等运算符返回False

让我们看另一个例子:

在下面的代码中,num1被赋值为整数7,而num2被赋值为字符串“7”。由于它们的数据类型不同,不等运算符返回True

num1 = 7
num2 = "7"
num1 != num2

# 输出结果: True

如果我们把字符串转换为整数,结果会发生什么变化呢?看下面的代码:

num1 = 7
num2 = int("7")

num1 != num2

# 输出结果: False

现在,num1num2都等于整数7,因此不等运算符返回False

不等运算符也可以用于比较Python的集合类型,例如列表、元组和集合。

注意:当比较集合类型的数据时,不等运算符会逐个比较集合中的元素。只有当两个集合在对应的位置上存在不相等的元素时,才会返回True

以下示例展示了这一点:

list1 = [2, 4, 6, 8]
list2 = [2, 4, 6, 9]

list1 != list2

# 输出结果: True

在上述示例中,list1list2只有一个元素不同,因此不等运算符返回True

在条件语句中使用不等运算符

不等运算符经常用作Python条件判断的一部分。

例如,以下代码演示了如何使用不等运算符来判断一个数字是否为奇数。

一个数字不能被2整除,则它是奇数,所以条件可以简化为num%2 != 0

num = 7
if(num % 2 != 0):
  print("这个数字是奇数。")
else:
  print("这个数字是偶数。")

# 输出结果: 这个数字是奇数。

你还可以在列表推导式中使用不等运算符,用来筛选出符合特定条件的元素。下面的例子中,odd_10是一个包含所有小于10的奇数的列表。

odd = [num for num in range(10) if num % 2 != 0]
print(odd)

# 输出结果: [1, 3, 5, 7, 9]

至此,我们完成了对不等运算符(!=)的讨论。正如你可能已经猜到的那样,相等运算符的作用与不等运算符相反。

在下一节中,你将学习更多关于相等运算符的知识。

Python 相等运算符的语法

以下是Python相等运算符的语法:

<obj1> == <obj2>  # <obj1>和<obj2>是有效的Python对象
  • obj1obj2的值相等时,该表达式返回 True
  • 否则,返回 False

Python 相等运算符的示例代码

相等运算符(==)的使用方式与不等运算符非常相似。

让我们编写以下示例:

  • 检查两个字符串是否相等
  • 检查一个数字是否是偶数
  • 在列表推导式中使用条件

相等运算符在比较中的应用

在下面的代码片段中,str1str2的值相等,所以相等运算符(==)返回True

str1 = "coding"
str2 = "coding"

str1 == str2

# 输出结果: True

Python的相等运算符

现在,让我们在条件表达式中使用相等运算符。

注意:能被2整除的数字是偶数,所以在代码中,这可以简化为条件num%2 == 0

num = 10
if(num % 2 == 0):
  print("这个数字是偶数。")
else:
  print("这个数字是奇数。")

# 输出结果: 这个数字是偶数。

现在,让我们以此为基础,使用Python的列表推导式来获取所有小于10的偶数。

even_10 = [num for num in range(10) if num % 2 == 0]
print(even_10)

# 输出结果: [0, 2, 4, 6, 8]

在上述示例中:

  • range(10)返回一个范围对象,用于生成从0到9的所有整数。
  • 条件num%2 == 0仅对偶数成立。
  • 因此,even_10是所有小于10的偶数列表。

到目前为止,你已经学习了如何使用不等运算符(!=)和相等运算符(==)来检查值是否相等。

在下一节中,你将学习如何验证两个对象的身份,即它们是否是同一个对象。

如何使用 Python 的 “is” 和 “is not” 运算符

如果你是Python编程的初学者,你可能会对==is运算符感到困惑。让我们在本节中澄清这一点。

在上一节中,我们有一个示例,其中str1str2的值相等,并且==运算符返回True

现在运行以下代码片段。

str1 = "coding"
str2 = "coding"

str1 is str2

# 输出结果: False

可以看到,str1 is str2 返回False

让我们退后一步,了解Python的is运算符的作用。

is运算符对任意两个Python对象进行操作,仅当两个对象是同一个对象时才返回True,这意味着它们在内存中引用的是同一块地址。

即使str1等于str2str1 is str2返回False,因为它们指向内存中的两个不同对象。因此,它们具有不同的身份。

在Python中,你可以使用id()函数来获取对象的身份。

▶ 运行以下代码单元以获取str1str2的身份。

id(str1)

# 示例输出: 139935398870320

id(str2)

# 示例输出: 139935398871344

如你所见,str1str2具有不同的标识。因此,str1 is str2按预期返回False

综上所述:

<obj1> is <obj2>  # 当且仅当
id(<obj1>) == id(<obj2>) # 返回 True 时,返回 True

让我们快速验证一下,如下图所示:

str1 = "coding"
str2 = str1

print(str1 is str2)
print(id(str1) == id(str2))

# 输出
True
True

直观地说,is not运算符与is运算符相反。

is not运算符对任意两个Python对象进行操作。仅当两个对象不是同一个对象时才返回True,即它们在内存中不是同一块地址。否则,它返回False

在上面的代码示例中,尝试将is替换为is not并检查结果。

结论

希望本教程对你有所帮助。

总结一下,你学到了:

  • 如何使用相等(==)和不等(!=)运算符来检查两个Python对象是否具有相同的值
  • Python对象的相等性和同一性之间的区别
  • Python的 isis not运算符如何帮助检查两个Python对象是否是同一个对象。

点击此处学习如何在Python中计算时间差或制作贪吃蛇游戏。

下篇教程再见,祝你学习愉快,编程顺利!🎉