揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!

文章目录

  • 一、python运算符
  • 二、运算符
    • 1.算术运算符
      • 1.1 加
      • 1.2 减
      • 1.3 乘
      • 1.4 除
      • 1.5 取模
      • 1.6 幂
      • 1.7 取整除
    • 2.比较运算符
      • 2.1 等于
      • 2.2 不等于
      • 2.3 大于
      • 2.4 小于
      • 2.5 大于等于
      • 2.6 小于等于
    • 3.赋值运算符
      • 3.1 加法赋值运算符
      • 3.2 减法赋值运算符
      • 3.3 乘法赋值运算符
      • 3.4 除法赋值运算符
      • 3.5 取模赋值运算符
      • 3.6 幂赋值运算符
      • 3.7 取整除赋值运算符
      • 3.8 海象运算符
    • 4.逻辑运算符
      • 4.1 与逻辑运算符
      • 4.2 或逻辑运算符
      • 4.3 非逻辑运算符
    • 5.位运算符
      • 5.1 按位与运算符
      • 5.2 按位或运算符
      • 5.3 按位异或运算符
      • 5.4 按位取反运算符
      • 5.5 左移动运算符
      • 5.6 右移动运算符
    • 6.成员运算符
      • 6.1 in成员运算符
      • 6.2 not in成员运算符
    • 7.身份运算符
      • 7.1 is身份运算符
      • 7.2 is not身份运算符
  • 三、总结


一、python运算符

Python的运算符是用于执行算术或逻辑计算的特殊符号。运算符所操作的值称为操作数。Python中的运算符大致可以分为以下几个大类:

  1. 算术运算符:用于执行基本的数学运算,如加法、减法、乘法、除法等。例如:+、-、*、/、%(取模)、**(幂运算)。
  2. 比较运算符:用于比较两个值或表达式的关系,并返回一个布尔值(True 或 False)。例如:==(等于)、!=(不等于)、>、<、>=、<=。
  3. 赋值运算符:用于给变量赋值。例如:=, +=(加等于)、-=(减等于)、*=(乘等于)、/=(除等于)。
  4. 逻辑运算符:用于组合多个条件,并根据这些条件的逻辑关系返回一个布尔值。例如:and(与)、or(或)、not(非)。
  5. 位运算符:用于对整数的二进制表示进行位级操作。例如:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)。
  6. 成员运算符:用于检查一个值是否属于一个序列或集合中。例如:in(存在于)、not in(不存在于)。
  7. 身份运算符:用于比较两个对象的身份(内存地址)是否相同。例如:is、is not。

二、运算符

1.算术运算符

运算符 描述 示例
+ 加 - 两个对象相加 a+b
- 减 - 得到负数或是一个数减去另一个数 a-b
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a*b
/ 除 - a 除以 b a/b
% 取模 - 返回除法的余数 a%b
** 幂 - 返回x的y次幂 a**b
// 取整除 - 往小的方向取整数 a//b

注意事项:

  1. 整数除法:在 Python 中,使用 / 运算符进行除法运算时,得到的结果是浮点数。而在 C 语言中,如果两个整数相除,结果会被截断为整数。如果想在 Python 中执行整数除法,可以使用 // 运算符。
  2. 整数溢出:在 C 语言中,整数溢出的结果是未定义的。而在 Python 中,整数没有溢出问题,可以进行任意大的整数运算。
  3. 浮点数精度:在 C 语言中,浮点数的精度是有限的,并且在进行浮点数运算时可能存在舍入误差。而在 Python 中,浮点数的精度相对较高,可以进行精确的浮点数运算。
  4. 字符串拼接:在 C 语言中,字符串拼接需要使用库函数或手动操作字符数组。而在 Python 中,可以直接使用 + 运算符来拼接字符串。
  5. 幂运算:在 C 语言中,计算幂需要使用 pow() 函数。而在 Python 中,可以使用 ** 运算符进行幂运算。
  6. 取模运算:在 C 语言中,取模运算 % 的结果与被除数的符号相同。而在 Python 中,取模运算 % 的结果与除数的符号相同。

1.1 加

代码如下(示例):

a = 2.1
b = 1.0
c = 0
 
c = a + b
print ("c 的值为:", c)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第1张图片

1.2 减

代码如下(示例):

a = 2.1
b = 1.0
c = 0
 
c = a - b
print ("c 的值为:", c)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第2张图片

1.3 乘

代码如下(示例):

a = 1.0
b = 4.0
c = 0
 
c = a * b
print ("c 的值为:", c) 

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第3张图片

1.4 除

代码如下(示例):

a = 1.0
b = 4.0
c = 0
 
c = a / b
print ("c 的值为:", c)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第4张图片

1.5 取模

代码如下(示例):

a = 5.0
b = 3.0
c = 0
 
c = a % b
print ("c 的值为:", c)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第5张图片

1.6 幂

代码如下(示例):

a = 2.0
b = 3.0
c = 0
 
c = a ** b
print ("c 的值为:", c)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第6张图片

1.7 取整除

代码如下(示例):

a = 1.0
b = 4.0
c = 0
 
c = a // b
print ("c 的值为:", c)

结果:可以发现和上面的除的结果有很大不一样。
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第7张图片

2.比较运算符

运算符 描述 示例
== 等于 - 比较对象是否相等 (a == b)
!= 不等于 - 比较两个对象是否不相等 (a != b)
> 大于 - 返回x是否大于y (a > b)
< 小于 - 返回x是否小于y。 (a < b)
>= 大于等于 - 返回x是否大于等于y。 (a >= b)
<= 小于等于 - 返回x是否小于等于y。 (a <= b)

注意事项:

  1. 所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
  2. 在 C 语言中,你需要使用逻辑运算符来连接多个比较表达式,例如,(a < b) && (b < c)。但是,a < b < c 是合法的 Python 表达式,表示 a 小于 b 并且 b 小于 c。
  3. Python3 已不支持 <> 运算符,可以使用 != 代替。

2.1 等于

代码如下(示例):

a = 1
b = 1
 
if ( a == b ):
   print ("a 等于 b")
else:
   print ("a 不等于 b")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第8张图片

2.2 不等于

代码如下(示例):

a = 1
b = 4
 
if ( a != b ):
   print ("a 不等于 b")
else:
   print ("a 等于 b")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第9张图片

2.3 大于

代码如下(示例):

a = 4
b = 1
 
if ( a > b ):
   print ("a 大于 b")
else:
   print ("a 小于等于 b")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第10张图片

2.4 小于

代码如下(示例):

a = 1
b = 4
 
if ( a < b ):
   print ("a 小于 b")
else:
   print ("a 大于等于 b")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第11张图片

2.5 大于等于

代码如下(示例):

a = 4
b = 1
 
if ( a >= b ):
   print ("a 大于等于 b")
else:
   print ("a 小于 b")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第12张图片

2.6 小于等于

代码如下(示例):

a = 1
b = 4
 
if ( a <= b ):
   print ("a 小于等于 b")
else:
   print ("a 大于 b")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第13张图片

3.赋值运算符

运算符 描述 示例
= 简单的赋值运算符 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
:= 海象运算符 见下面

注意事项:

  1. 在 Python 中,你可以使用多重赋值语法来将多个变量赋值给多个值。例如,a, b = 10, 20 表示将 10 赋给变量 a,将 20 赋给变量 b。而在 C 语言中,你需要分别对每个变量进行赋值操作,例如,a = 10; b = 20;
  2. 在 Python 3.8 及更高版本中,引入了一种新的语法特性,称为"海象运算符"(Walrus Operator),它使用 := 符号。这个运算符的主要目的是在表达式中同时进行赋值和返回赋值的值。

3.1 加法赋值运算符

代码如下(示例):

a = 2.1
b = 1.0
 
b += a
print ("b 的值为:", b)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第14张图片

3.2 减法赋值运算符

代码如下(示例):

a = 2.1
b = 1.0
 
b -= a
print ("b 的值为:", b)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第15张图片

3.3 乘法赋值运算符

代码如下(示例):

a = 2.1
b = 1.0
 
b *= a
print ("b 的值为:", b)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第16张图片

3.4 除法赋值运算符

代码如下(示例):

a = 2.1
b = 1.0
 
b /= a
print ("b 的值为:", b)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第17张图片

3.5 取模赋值运算符

代码如下(示例):

a = 2.1
b = 1.0
 
b %= a
print ("b 的值为:", b)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第18张图片

3.6 幂赋值运算符

代码如下(示例):

a = 2.0
b = 2.1
 
b **= a
print ("b 的值为:", b)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第19张图片

3.7 取整除赋值运算符

代码如下(示例):

a = 2.0
b = 2.1
 
b //= a
print ("b 的值为:", b)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第20张图片

3.8 海象运算符

使用海象运算符可以在一些情况下简化代码,尤其是在需要在表达式中使用赋值结果的情况下。这对于简化循环条件或表达式中的重复计算很有用。

代码如下(示例):

# 传统写法
n = 10
if n > 5:
    print(n)

# 使用海象运算符:= 允许我们在条件语句中同时计算并赋值 n * n,然后将结果用于比较
if (n := 10) > 5:
    print(n)

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第21张图片

4.逻辑运算符

运算符 描述 示例
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 语言在逻辑运算符方面有一些不同。以下是它们之间的几个主要区别:

  1. 逻辑运算的返回值类型:在 C 语言中,逻辑运算的结果会被解释为整数类型(0 表示假,非零值表示真)。而在 Python 中,逻辑运算的结果会被解释为布尔类型(True 或 False)。
  2. 短路行为:在 C 语言中,逻辑运算符 && 和 || 具有短路行为。也就是说,如果表达式的结果已经能够确定整体的结果,那么后续的表达式不会被计算。而在 Python 中,逻辑运算符 and 和 or 也具有短路行为。如果第一个表达式已经决定了整体的结果,那么第二个表达式将不会被执行。
  3. 逻辑运算符的写法:在 C 语言中,逻辑与运算使用 &&,逻辑或运算使用 ||,逻辑非运算使用 !。而在 Python 中,逻辑与运算使用 and,逻辑或运算使用 or,逻辑非运算使用 not。
  4. 运算符的优先级和结合性:在C 语言中的逻辑运算符的优先级和结合性是固定的,可以使用括号来改变运算的顺序。而在Python 中的逻辑运算符有不同的优先级和结合性,可以使用括号来明确运算的顺序。

4.1 与逻辑运算符

代码如下(示例):

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")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第22张图片

4.2 或逻辑运算符

代码如下(示例):

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")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第23张图片

4.3 非逻辑运算符

代码如下(示例):

x = False

if not( x ):
   print ("变量 x 为 false")
else:
   print ("变量 x 为 true") 

x = True

if not( x ):
   print ("变量 x 为 false")
else:
   print ("变量 x 为 true") 

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第24张图片

5.位运算符

运算符 描述 示例
& 按位与运算符:参与运算的两个值,如果两个相应位都为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 语言在位运算符方面有一些不同之处。以下是它们的主要区别:

  1. 位运算符的操作数类型:在 C 语言中,位运算符通常用于整数类型(如 int、unsigned int、char 等)。而在 Python 中,位运算符可以用于整数类型(如 int、bool)和布尔类型(True 和 False)。
  2. 位运算符的结果类型:在 C 语言中,位运算符的结果类型与其操作数类型相同。例如,对两个 int 类型的值进行位运算的结果也是 int 类型。而在 Python 中,位运算符的结果类型与其操作数类型无关。对两个整数进行位运算,结果仍然是整数。但是,对布尔类型进行位运算时,结果将变为整数类型。
  3. 负数的处理方式:在 C 语言中,对于带符号整数类型(如 int),位运算符会按照补码表示法进行计算。这意味着负数的二进制表示会影响位运算的结果。而在 Python 中,整数是动态的,没有固定的位数。Python 使用补码表示方式来处理位运算,但结果的位数取决于操作数的位数,并且不受符号位的影响。
  4. 移位运算符的行为:在 C 语言中,左移位运算符(<<)和右移位运算符(>>)会直接将二进制数向左或向右移动指定的位数,并且溢出的位将被丢弃。而在 Python 中,左移位运算符(<<)和右移位运算符(>>)的行为与 C 语言类似,但是 Python 没有固定的位数限制,移动的位数可以超过操作数的位数。

5.1 按位与运算符

代码如下(示例):

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))    # 转换为二进制

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第25张图片

5.2 按位或运算符

代码如下(示例):

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))    # 转换为二进制

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第26张图片

5.3 按位异或运算符

代码如下(示例):

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))    # 转换为二进制

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第27张图片

5.4 按位取反运算符

代码如下(示例):

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))    # 转换为二进制

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第28张图片

5.5 左移动运算符

代码如下(示例):

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))    # 转换为二进制

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第29张图片

5.6 右移动运算符

代码如下(示例):

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的运算符:从加减乘除到幂次开方,一网打尽!_第30张图片

6.成员运算符

除了以上的一些运算符之外,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 语言中,要判断一个值是否存在于数组或其他数据结构中,需要使用比较运算符或循环等语句来实现。

6.1 in成员运算符

代码如下(示例):

a = 5

list = [1, 2, 3, 4, 5 ]

if ( a in list ):
   print ("变量 a 在给定的列表中 list 中")
else:
   print ("变量 a 不在给定的列表中 list 中")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第31张图片

6.2 not in成员运算符

代码如下(示例):

a = 50

list = [1, 2, 3, 4, 5 ]

if ( a not in list ):
   print ("变量 a 不在给定的列表中 list 中")
else:
   print ("变量 a 在给定的列表中 list 中")

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第32张图片

7.身份运算符

身份运算符用于比较两个对象的存储单元

运算符 描述 示例
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语言,可以通过比较指针来实现类似的功能。例如,可以使用==运算符比较两个指针的值是否相等,表示它们是否指向同一个内存地址。

7.1 is身份运算符

代码如下(示例):

x = [1, 2, 3]
y = [1, 2, 3]
z = x

print(x is y)     # 输出 False,因为 x 和 y 引用了不同的内存地址
print(x is z)     # 输出 True,因为 x 和 z 引用了同一个内存地址

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第33张图片

7.2 is not身份运算符

代码如下(示例):

x = [1, 2, 3]
y = [1, 2, 3]

print(x is not y) # 输出 True,因为 x 和 y 引用了不同的内存地址

结果:
揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第34张图片


三、总结

今天主要讲了Python的运算符,下一次说说运算符的优先级顺序。

感谢你的观看,谢谢!

揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!_第35张图片

你可能感兴趣的:(Python学习,python,开发语言,学习)