LEMON

记录站

0%

Python运算符(四)

Python 运算符

一、算术运算符(常用)

  • 功能:进行相关符号的运算,不会改变变量的值
  • 值:相关的数学运算结果;(2 + 1 = 3)

1. 运算符

  • +(加)
  • -(减)
  • *(乘)
  • /(除)
  • %(取余)
  • //(取整)
  • **(求幂[次方])

2. 语法格式

  • 2 + 1
  • 2 - 1
  • 2 * 1
  • 2 / 1
  • 2 % 1
  • 2 // 1
  • 2 ** 1

3.示例

注意:在进行相关符号运算的时候,是不会修改变量值的

1
2
3
4
5
6
7
8
9
10
11
num1 = 5
num2 = 3
print(num1 + num2 ) # 8
print(num1 - num2 ) # 2
print(num1 * num2 ) # 15
print(num1 / num2 ) # 1.6666666666666667
print(num1 % num2 ) # 2
print(num1 ** num2 ) # 125
print(num1 // num2 ) # 1

print(num1, num2) # 5 3 不会改变变量的值

二、赋值运算符(常用)

  • 功能:计算了等号右侧 “表达式”的值,并赋值给等号左侧的变量
  • 值:赋值结束后变量的值

1. 运算符

  • =
  • +=
  • -=
  • *=
  • **=
  • /=
  • %=
  • //=

2. 语法格式

image-20200607083654461

3. 示例

  • +=
1
2
3
4
num = 1
while num <= 5:
print("num = %d" % num)
num += 1
  • -=
1
2
3
4
num = 5
while num > 0:
print("num = %d" % num)
num -= 1

三、比较运算符(常用)

  • 功能:计算 “表达式1” 和 “表达式2”的值
  • 值:如果关系成立,整个关系运算表达式的值为真,否则为假

1. 运算符

image-20200607085131221

2. 语法格式

  • 表达式1 比较运算符 表达式2

3. 示例

1
2
3
4
5
6
7
8
9
10
11
# 成立的表达式
if 10 == 10:
print("True")
else:
print("False")

# 不成立的表达式
if 10 == 11:
print("True")
else:
print("False")

四、逻辑运算符(常用)

image-20200607084912452

1. 逻辑与 and 运算符

1.1 格式 & 原理

  • 格式:表达式1 and 表达式2
  • 原理:两个表达式有一个是假 就为假;两个表达式都是真 才为真
    • 如果表达式1的值为真,表达式2的值为真,整体逻辑与运算表达式的值为真
    • 如果表达式1的值为真,表达式2的值为假,整体逻辑与运算表达式的值为假
    • 如果表达式1的值为假,表达式2的值为真,整体逻辑与运算表达式的值为假
    • 如果表达式1的值为假,表达式2的值为假,整体逻辑与运算表达式的值为假

1.2 短路原则

表达式1 and 表达式2 and 表达式3 and 表达式4 and …….

原理一样,无论有多少个表达式,必须要所有的表达式为真才为真,否则为假!!!

1.3 示例

1
2
3
4
5
6
7
8
9
10
11
# 都为真
num1 = 1 < 2
num2 = 2 == 2
if num1 and num2:
print("*******")

# 一个真,一个假
num1 = 1 > 2
num2 = 2 == 2
if num1 and num2:
print("*******")

2.逻辑或 or 运算符

2.1 格式 & 原理

  • 格式:表达式1 or 表达式2
  • 原理:两个表达式有一个是真 就为真;两个表达式都是假 才为假
    • 如果表达式1的值为真,表达式2的值为真,整体逻辑与运算表达式的值为真
    • 如果表达式1的值为真,表达式2的值为假,整体逻辑与运算表达式的值为真
    • 如果表达式1的值为假,表达式2的值为真,整体逻辑与运算表达式的值为真
    • 如果表达式1的值为假,表达式2的值为假,整体逻辑与运算表达式的值为假

2.2 短路原则

表达式1 or 表达式2 or 表达式3 or 表达式4 or …….

原理一样,无论有多少个表达式,只要有一个表达式是真 就为真,表达式都是假 才为假!!!

2.3 示例

1
2
3
4
num1 = 1 > 2
num2 = 2 == 2
if num3 or num4:
print("&&&&&&&&&&")

3.逻辑非 not 运算符

3.1 格式 & 原理

  • 格式:not 表达式
  • 原理:颠倒黑白
    • 如果表达式的值为真。整体逻辑非运算表达式的值为假
    • 如果表达式的值为假。整体逻辑非运算表达式的值为真

3.2 示例

1
2
if not 0:
print("@@@@@@@@@")

五、成员运算符(常用)

1. in 和 not in 的作用

  • 用来测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

2. 示例

  • string
1
2
3
str1 = "lemon is a good man!"
print("good" in str1) # True
print("good" not in str1) # False
  • list
1
2
3
list1 = ["lemon", 18]
print(18 in list1) # True
print(18 not in list1) # False
  • tuple
1
2
3
tuple1 = ("lemon", 18)
print("lemon" in tuple1) # True
print("lemon" not in tuple1) # False

六、身份运算符(常用)

1. is 和 is not 的作用

  • 身份运算符用于比较两个对象的存储单元
    • 说白了就是判断两个标识符的内存地址是否相同
运算符 描述 实例
is is 是判断两个标识符是不是引用自同一个对象 x is y, 类似 id(x) == id(y) 。如果引用的是同一个对象则返回 True,否则返回 False
is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b) 。如果引用的不是同一个对象则返回结果 True,否则返回 False。

2. 示例

1
2
3
4
5
6
num1 = 100
num2 = num1
print(num1 is num2) #True
print(num1 is not num2) #False
print("num1_id = ", id(num1)) #num1_id = 1853852880
print("num2_id = ", id(num2)) #num2_id = 1853852880

七、三目运算符(不太常用)

1. 作用

  • 简化版的 if-else语句
  • 格式:
    • 条件成立要执行的语句 if 条件 else 条件不成立要执行的语句

2. 示例

1
2
3
4
a = 3
b = 4
c = (a * 2 if a > b else b * a) #条件成立则执行if语句:(a * b),否则就执行else语句:(b * a)
print(c)
  • 需求:有两个变量,比较大小,如果变量1大于变量2就执行变量1 - 变量2;否则变量2 - 变量1
1
2
3
a1 = 19
a2 = 10
print(a1 - a2) if a1 > a2 else print(a2 - a1)

八、位 操作符(不太常用)

该运算符按二进制位对值进行操作

& 按位与:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

| 按位或:只要对应的两个二进位有一个为1时,结果位就为1

^ 按位异或:当两对应的二进位相异时,结果为1

~ 按位取反:对数据的每个二进制位取反,即把1变为0,把0变为1

<< 右移动:运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位丢弃,低位补0

>> 右移动:左边的运算数的各二进制位全部右移若干位,>>右边的数字指定了移动的位数

1
2
3
4
5
6
print(0b110 & 0b010)  #2
print(3|2) #3
print(3^2) #1
print(~2) #-3
print(1<<2) #4
print(4>>2) #1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
1、& 按位与 运算符
# 位运算符:按位运算符是把数字看作二进制来进行计算
# 相应的位数都为1,则该位的结果为1,否则为0
print(5 & 7) # 5
5: 101
7: 111
------
1 0 1

2、| 按位或 运算符
# 两个二进制位有一个位为1,结果为1
print(5 | 7) # 7
5: 101
7: 111
------
1 1 1

3、 ^ 按位异或 运算符
# 二进制的两位相异时,结果为1
print(5 ^ 7) # 2
5: 101
7: 111
------
0 1 0

4、 ~ 按位取反 运算符
# 每个二进制数据位取反,在进行转码
print(~ 5) # 6
00000101
11111010
10000110

5、 << 左移动运算符
# 各二进制位全部左移动若干位,由<<右侧的数字决定,低位补0
print(131 << 2) # 524
---------------
# 131:10000011
# 10000011 向左移动两位 #1000001100

6、>> 右移动运算符
# 各二进制位全部右移动若干位,由>>右侧的数字决定,低位丢弃,高位补0
print(131 >> 2) # 32
# 131:10000011
# 10000011 向右移动两位 # 00100000

九、运算符的优先级(重点)

  • 以下表格列出了从最高到最低优先级的所有运算符
运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 ‘AND’
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
-------------本文结束感谢您的阅读-------------