个人主页:【😊个人主页】
系列专栏:【❤️Python】
文章目录
- 前言
- 什么是运算符?
- 算术运算符
- 实例
- 比较运算符
- 实例
- 赋值运算符
- 实例
- 逻辑运算符
- 实例
- 位运算符
- 实例
- 成员运算符
- 实例
- 身份运算符
- 实例
- 运算符优先级
- 实例
前言
关于九种数据类型,在之前的文章中我们已经全部介绍,接下来,我们就将跳出基础知识的教学,进入到Python程序编写的学习,在这个阶段,我们可以自己动手,尝试去编写一些简单的Python程序。今天我们来学习有关运算符的相关知识。想了解更多Python内容请订阅内容【Python系列教程】
什么是运算符?
Python中的运算符用于执行数学或逻辑运算。这些运算符可以根据它们的功能和操作数的数量进行分类。
算术运算符:用于执行基本的算术运算,例如加法、减法、乘法、除法等。常见的算术运算符包括
+、-、*、/、%(取余数)、**(幂运算)
。
比较运算符:用于比较两个值。常见的比较运算符包括==、!=、>、<、>=、<=
。
赋值运算符:用于将值赋给变量。常见的赋值运算符包括=、+=、-=``、*=``、/=
。
逻辑运算符:用于组合多个条件。常见的逻辑运算符包括and(与)、or(或)、not(非)
。
位运算符:用于对二进制数进行操作。常见的位运算符包括&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)
。
成员运算符:用于检查一个值是否存在于序列中。常见的成员运算符包括in(存在)和 not in(不存在)
。
身份运算符:用于比较两个对象的内存地址。常见的身份运算符包括is(同一对象)和 is not(不同对象)
。
运算符优先级:当一个表达式中含有多个运算符时,运算符优先级规定了它们的计算顺序。可以使用括号来改变运算符的优先级。
接下来我将一一为大家介绍它,并分享实例。
算术运算符
Python中的算术运算符用于执行基本的数学运算,如加、减、乘、除等。这些运算符对于处理数字和变量中的数值非常关键
加法 (+): 用于将两个数相加。
减法 (-): 用于从一个数中减去另一个数。
乘法 (*): 用于将两个数相乘。
除法 (/): 用于将第一个数除以第二个数并返回商(浮点数)。
整除 (//): 用于将两个数相除并返回商的整数部分(向下取整)。
取模 (%): 用于返回两个数相除的余数。
幂 (**): 用于返回第一个数的第二个数次幂的结果。
实例
a = 21
b = 10
c = 0
c = a + b
print("1 - c 的值为:", c)
c = a - b
print("2 - c 的值为:", c)
c = a * b
print("3 - c 的值为:", c)
c = a / b
print("4 - c 的值为:", c)
c = a % b
print("5 - c 的值为:", c)
# 修改变量 a 、b 、c
a = 2
b = 3
c = a** b
print("6 - c 的值为:", c)
a = 10
b = 5
c = a // b
print("7 - c 的值为:", c)
比较运算符
比较运算符用于比较两个值的大小或相等性。
等于 (==): 检查两个值是否相等。
不等于 (!=): 检查两个值是否不相等。
大于 (>): 检查左边的值是否大于右边的值。
小于 (<): 检查左边的值是否小于右边的值。
大于等于 (>=): 检查左边的值是否大于或等于右边的值。
小于等于 (<=): 检查左边的值是否小于或等于右边的值。
实例
a = 21
b = 10
c = 0
if a == b:
print("1 - a 等于 b")
else:
print("1 - a 不等于 b")
if a != b:
print("2 - a 不等于 b")
else:
print("2 - a 等于 b")
if a > b:
print("3 - a 不等于 b")
else:
print("3 - a 等于 b")
if a < b:
print("4 - a 小于 b")
else:
print("4 - a 大于等于 b")
if a > b:
print("5 - a 大于 b")
else:
print("5 - a 小于等于 b")
# 修改变量 a 和 b 的值
a = 5
b = 20
if a <= b:
print("6 - a 小于等于 b")
else:
print("6 - a 大于 b")
if b >= a:
print("7 - b 大于等于 a")
else:
print("7 - b 小于 a")
赋值运算符
Python中的赋值运算符主要用于将值或表达式的结果赋给变量。最基本的赋值运算符是单个等号=。然而,Python还提供了一些复合赋值运算符,它们结合了算术运算符、位运算符或逻辑运算符与赋值操作,从而允许在一行代码中执行多个操作。
简单赋值 (=): 用于将右侧的值赋给左侧的变量。
复合赋值 (+=, -=, *=, /=, %=, //=, **=): 用于对变量进行算术运算并重新赋值。
注:海象运算符:=是Python 3.8中引入的一个新特性,因此在较旧的Python版本中不可用
实例
a = 21
b = 10
c = 0
c = a + b
print("1 - c 的值为:", c)
c += a
print("2 - c 的值为:", c)
c *= a
print("3 - c 的值为:", c)
c /= a
print("4 - c 的值为:", c)
c = 2
c %= a
print("5 - c 的值为:", c)
c **= a
print("6 - c 的值为:", c)
c //= a
print("7 - c 的值为:", c)
逻辑运算符
Python中的逻辑运算符是用来在条件语句中进行逻辑操作的特殊符号,它们允许根据一个或多个条件的真假值来执行相应的操作。
与 (and): 如果两个条件都为True,则返回True。
或 (or): 如果两个条件中至少有一个为True,则返回True。
非 (not): 对条件取反。
注:当使用and运算符时,如果第一个表达式为False,则Python不会评估第二个表达式,因为无论第二个表达式的值是什么,整个表达式的结果都将是False。这被称为“短路”行为。
类似地,当使用or运算符时,如果第一个表达式为True,则Python不会评估第二个表达式,因为整个表达式的结果已经确定为True。
实例
a = 10
b = 20
if a and b:
print("1 - 变量 a 和 b 都为 True")
else:
print("1 - 变量 a 和 b 有一个不为 True")
if a or b:
print("2 - 变量 a 和 b 都为 True,或其中一个变量为 True")
else:
print( "2 - 变量 a 和 b 都不为 True")
# 修改变量 a 的值
a = 0
if a and b:
print("3 - 变量 a 和 b 都为 True")
else:
print("3 - 变量 a 和 b 有一个不为 True")
if a or b:
print("4 - 变量 a 和 b 都为 True,或其中一个变量为 True")
else:
print("4 - 变量 a 和 b 都不为 True")
if not (a and b):
print("5 - 变量 a 和 b 都为 False,或其中一个变量为 False")
else:
print("5 - 变量 a 和 b 都为 True")
位运算符
Python中的位运算符主要用于对整数的二进制表示进行操作。这些运算符直接作用于整数的二进制位,允许进行如位与、位或、位异或、位取反、左移和右移等操作。
按位与 (&): 对两个数的二进制表示进行按位与操作。
按位或 (|): 对两个数的二进制表示进行按位或操作。
按位异或 (^): 对两个数的二进制表示进行按位异或操作。
按位取反 (~): 对数的二进制表示进行按位取反操作。
左移 (<<): 将数的二进制表示向左移动指定的位数。
右移 (>>): 将数的二进制表示向右移动指定的位数。
注:位运算符主要针对整数类型的数据进行操作,如果将字符串等其他类型的数据进行二进制转换会报错。
在进行位运算时,Python会自动将操作数转换为整数(如果它们不是整数的话)。
位运算符在底层编程、性能优化、加密解密等领域有广泛应用。
实例
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print("1 - c 的值为:", c)
c = a | b; # 61 = 0011 1101
print("2 - c 的值为:", c)
c = a ^ b; # 49 = 0011 0001
print("3 - c 的值为:", c)
c = ~a; # -61 = 1100 0011
print("4 - c 的值为:", c)
c = a << 2; # 240 = 1111 0000
print("5 - c 的值为:", c)
c = a >> 2; # 15 = 0000 1111
print("6 - c 的值为:", c)
成员运算符
Python中的成员运算符主要用于检查某个元素是否属于某个序列(如列表、元组、字符串等)或集合。这些运算符在编程中非常有用,因为它们允许我们进行快速的条件判断。
in: 检查某个值是否是序列(如列表、元组或字符串)的成员。
not in: 检查某个值是否不是序列的成员。
注:当使用成员运算符时,需要确保序列或集合是可迭代的,因为成员运算符会遍历序列或集合中的元素来查找指定的值。
成员运算符对于字符串也同样适用,可以检查某个子字符串是否存在于另一个字符串中。
在使用成员运算符时,需要注意区分大小写,因为Python是区分大小写的语言。
实例
a = 10
b = 20
list = [1, 2, 3, 4, 5];
if (a in list):
print("1 - 变量 a 在给定的列表中 list 中")
else:
print("1 - 变量 a 不在给定的列表中 list 中")
if (b not in list):
print("2 - 变量 b 不在给定的列表中 list 中")
else:
print("2 - 变量 b 在给定的列表中 list 中")
# 修改变量 a 的值
a = 2
if (a in list):
print("3 - 变量 a 在给定的列表中 list 中")
else:
print("3 - 变量 a 不在给定的列表中 list 中")
身份运算符
Python中的身份运算符是用于比较两个对象是否具有相同的内存地址的运算符。它们主要用于判断两个变量是否指向同一个对象,而不是比较它们的值是否相等。Python中的身份运算符主要有两个:is和is not
。
is: 检查两个对象是否指向同一个内存地址(即它们是否是同一个对象)。
is not: 检查两个对象是否不指向同一个内存地址。
注:身份运算符比较的是对象的内存地址,而不是它们的值。即使两个对象具有相同的值,它们也可能有不同的内存地址。
对于不可变类型(如整数、浮点数、字符串、元组等),Python可能会实现对象缓存(也称为“驻留”或“interning”),这意味着具有相同值的不可变对象可能会共享相同的内存地址。然而,这并不意味着所有具有相同值的不可变对象都必然有相同的内存地址,这取决于Python的实现和内存管理策略。
对于可变类型(如列表、字典、集合等),即使两个对象包含相同的元素,它们也一定有不同的内存地址,因为可变类型的对象可以就地修改。\
实例
a = 20
b = 20
if (a is b):
print("1 - a 和 b 有相同的标识")
else:
print("1 - a 和 b 没有相同的标识")
if (a is not b):
print("2 - a 和 b 没有相同的标识")
else:
print( "2 - a 和 b 有相同的标识")
# 修改变量 b 的值
b = 30
if (a is b):
print("3 - a 和 b 有相同的标识")
else:
print("3 - a 和 b 没有相同的标识")
if (a is not b):
print("4 - a 和 b 没有相同的标识")
else:
print("4 - a 和 b 有相同的标识")
运算符优先级
Python中的运算符有优先级,例如,乘法 (*) 和除法 (/) 的优先级高于加法 (+) 和减法 (-)。可以使用括号 () 来改变运算的优先级。
实例
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d # ( 30 * 15 ) / 5
print("(a + b) * c / d 运算结果为:", e)
e = ((a + b) * c) / d # (30 * 15 ) / 5
print("((a + b) * c) / d 运算结果为:", e)
e = (a + b) * (c / d); # (30) * (15/5)
print("(a + b) * (c / d) 运算结果为:", e)
e = a + (b * c) / d; # 20 + (150/5)
print("a + (b * c) / d 运算结果为:", e)
参考菜鸟编程 Python运算符