Python的运算符是用于执行算术或逻辑计算的特殊符号。运算符所操作的值称为操作数。Python中的运算符大致可以分为以下几个大类:
运算符 | 描述 | 示例 |
---|---|---|
+ | 加 - 两个对象相加 | a+b |
- | 减 - 得到负数或是一个数减去另一个数 | a-b |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a*b |
/ | 除 - a 除以 b | a/b |
% | 取模 - 返回除法的余数 | a%b |
** | 幂 - 返回x的y次幂 | a**b |
// | 取整除 - 往小的方向取整数 | a//b |
注意事项:
代码如下(示例):
a = 2.1
b = 1.0
c = 0
c = a + b
print ("c 的值为:", c)
结果:
代码如下(示例):
a = 2.1
b = 1.0
c = 0
c = a - b
print ("c 的值为:", c)
结果:
代码如下(示例):
a = 1.0
b = 4.0
c = 0
c = a * b
print ("c 的值为:", c)
结果:
代码如下(示例):
a = 1.0
b = 4.0
c = 0
c = a / b
print ("c 的值为:", c)
结果:
代码如下(示例):
a = 5.0
b = 3.0
c = 0
c = a % b
print ("c 的值为:", c)
结果:
代码如下(示例):
a = 2.0
b = 3.0
c = 0
c = a ** b
print ("c 的值为:", c)
结果:
代码如下(示例):
a = 1.0
b = 4.0
c = 0
c = a // b
print ("c 的值为:", c)
结果:可以发现和上面的除的结果有很大不一样。
运算符 | 描述 | 示例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) |
> | 大于 - 返回x是否大于y | (a > b) |
< | 小于 - 返回x是否小于y。 | (a < b) |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) |
注意事项:
代码如下(示例):
a = 1
b = 1
if ( a == b ):
print ("a 等于 b")
else:
print ("a 不等于 b")
结果:
代码如下(示例):
a = 1
b = 4
if ( a != b ):
print ("a 不等于 b")
else:
print ("a 等于 b")
结果:
代码如下(示例):
a = 4
b = 1
if ( a > b ):
print ("a 大于 b")
else:
print ("a 小于等于 b")
结果:
代码如下(示例):
a = 1
b = 4
if ( a < b ):
print ("a 小于 b")
else:
print ("a 大于等于 b")
结果:
代码如下(示例):
a = 4
b = 1
if ( a >= b ):
print ("a 大于等于 b")
else:
print ("a 小于 b")
结果:
代码如下(示例):
a = 1
b = 4
if ( a <= b ):
print ("a 小于等于 b")
else:
print ("a 大于 b")
结果:
运算符 | 描述 | 示例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
:= | 海象运算符 | 见下面 |
注意事项:
代码如下(示例):
a = 2.1
b = 1.0
b += a
print ("b 的值为:", b)
结果:
代码如下(示例):
a = 2.1
b = 1.0
b -= a
print ("b 的值为:", b)
结果:
代码如下(示例):
a = 2.1
b = 1.0
b *= a
print ("b 的值为:", b)
结果:
代码如下(示例):
a = 2.1
b = 1.0
b /= a
print ("b 的值为:", b)
结果:
代码如下(示例):
a = 2.1
b = 1.0
b %= a
print ("b 的值为:", b)
结果:
代码如下(示例):
a = 2.0
b = 2.1
b **= a
print ("b 的值为:", b)
结果:
代码如下(示例):
a = 2.0
b = 2.1
b //= a
print ("b 的值为:", b)
结果:
使用海象运算符可以在一些情况下简化代码,尤其是在需要在表达式中使用赋值结果的情况下。这对于简化循环条件或表达式中的重复计算很有用。
代码如下(示例):
# 传统写法
n = 10
if n > 5:
print(n)
# 使用海象运算符:= 允许我们在条件语句中同时计算并赋值 n * n,然后将结果用于比较
if (n := 10) > 5:
print(n)
结果:
运算符 | 描述 | 示例 |
---|---|---|
and | 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 | (x and y) |
or | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (x or y) |
not | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(x) |
注意事项:
Python 和 C 语言在逻辑运算符方面有一些不同。以下是它们之间的几个主要区别:
代码如下(示例):
x = True
y = True
if ( x and y ):
print ("变量 x 和 y 都为 true")
else:
print ("变量 x 和 y 至少有一个不为 true")
x = True
y = False
if ( x and y ):
print ("变量 x 和 y 都为 true")
else:
print ("变量 x 和 y 至少有一个不为 true")
结果:
代码如下(示例):
x = True
y = False
if ( x or y ):
print ("变量 x 和 y 至少有一个为 true")
else:
print ("变量 x 和 y 两个都为 false")
x = False
y = False
if ( x or y ):
print ("变量 x 和 y 至少有一个为 true")
else:
print ("变量 x 和 y 两个都为 false")
结果:
代码如下(示例):
x = False
if not( x ):
print ("变量 x 为 false")
else:
print ("变量 x 为 true")
x = True
if not( x ):
print ("变量 x 为 false")
else:
print ("变量 x 为 true")
结果:
运算符 | 描述 | 示例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) |
I | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a I b) |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 | (~a ) |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 |
>> | 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数 | a >> 2 |
注意事项:
Python 和 C 语言在位运算符方面有一些不同之处。以下是它们的主要区别:
代码如下(示例):
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b # 12 = 0000 1100
print ("c 的值为:", c)
print("c 的二进制值为{:08b}".format(c)) # 转换为二进制
结果:
代码如下(示例):
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a | b # 61 = 0011 1101
print ("c 的值为:", c)
print("c 的二进制值为{:08b}".format(c)) # 转换为二进制
结果:
代码如下(示例):
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a ^ b # 49 = 0011 0001
print ("c 的值为:", c)
print("c 的二进制值为{:08b}".format(c)) # 转换为二进制
结果:
代码如下(示例):
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = ~a # -61 = 1100 0011
print ("c 的值为:", c)
print("c 的二进制值为{:08b}".format(c)) # 转换为二进制
结果:
代码如下(示例):
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a << 2 # 240 = 1111 0000
print ("c 的值为:", c)
print("c 的二进制值为{:08b}".format(c)) # 转换为二进制
结果:
代码如下(示例):
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a >> 2 # 15 = 0000 1111
print ("c 的值为:", c)
print("c 的二进制值为{:08b}".format(c)) # 转换为二进制
结果:
除了以上的一些运算符之外,Python还支持成员运算符,成员运算符 in 和 not in 可以应用于大多数容器类型,包括列表、元组、集合、字典和字符串等。
运算符 | 描述 | 示例 |
---|---|---|
in | in 运算符用于测试一个值是否为列表、元组、字符串等容器类型中的元素,如果是则返回 True,否则返回 False。 | ( a in list ) |
not in | not in 运算符则是 in 运算符的否定形式,如果一个值不是容器类型中的元素,则返回 True,否则返回 False。 | ( a not in list ) |
注意事项:
Python 中的成员运算符 in 和 not in 是 Python 语言独有的,C 语言中并没有这样的运算符。在 C 语言中,要判断一个值是否存在于数组或其他数据结构中,需要使用比较运算符或循环等语句来实现。
代码如下(示例):
a = 5
list = [1, 2, 3, 4, 5 ]
if ( a in list ):
print ("变量 a 在给定的列表中 list 中")
else:
print ("变量 a 不在给定的列表中 list 中")
结果:
代码如下(示例):
a = 50
list = [1, 2, 3, 4, 5 ]
if ( a not in list ):
print ("变量 a 不在给定的列表中 list 中")
else:
print ("变量 a 在给定的列表中 list 中")
结果:
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 示例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象,如果引用的是同一个对象则返回 True,否则返回 False | x is y, 类似 id(x) == id(y) 。 |
is not | is not 是判断两个标识符是不是引用自不同对象,如果引用的不是同一个对象则返回结果 True,否则返回 False。 | x is not y , 类似 id(x) != id(y)。 |
注意事项:
C语言没有像Python那样的身份运算符。Python的身份运算符比较的是对象的身份(内存地址),而不是值。如果要比较对象的值是否相等,应该使用相等运算符==和!=。
对于C语言,可以通过比较指针来实现类似的功能。例如,可以使用==运算符比较两个指针的值是否相等,表示它们是否指向同一个内存地址。
代码如下(示例):
x = [1, 2, 3]
y = [1, 2, 3]
z = x
print(x is y) # 输出 False,因为 x 和 y 引用了不同的内存地址
print(x is z) # 输出 True,因为 x 和 z 引用了同一个内存地址
结果:
代码如下(示例):
x = [1, 2, 3]
y = [1, 2, 3]
print(x is not y) # 输出 True,因为 x 和 y 引用了不同的内存地址
结果:
今天主要讲了Python的运算符,下一次说说运算符的优先级顺序。
感谢你的观看,谢谢!