1. 算数运算符

  • +

str1 = '姓'
str2 = '名'
name = str1 + str2 # 结果 '姓名'

  • -
  • *

str_num = '10' * 2 # 结果 '1010' 
str_multiply = '姓名' * 2 # 结果 '姓名姓名'

  • /
  • // -> 取整除

whole = 9 // 2  # 结果 4

  • % -> 取模
  • ** -> 幂 -> 返回x的y次幂

power = 2**3 # 结果 8 (2 × 2 × 2 = 8)

3. 比较运算符

  • ==

a = 21
b = 10

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

  • !=

a = 21
b = 10

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

  • >

a = 21
b = 10

if ( a > b ):
   print ("a 大于 b")
else:
   print ("a 小于 b")

  • <

a = 21
b = 10

if ( a < b ):
   print ("a 小于 b")
else:
   print ("a 大于 b")

  • >=

a = 21
b = 10

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

  • <=

a = 21
b = 10

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

2. 赋值运算符

  • == / != 和 is / is not 的区别:

    • == / != 是判断两个变量的值是否一致或不一致

    • is / is not 是判断两个变量所引用的对象是否一致或不一致(即: 判断两个变量的内存地址是否一致或不一致)

  • =

a = 1

print(a)  # 1

  • +=

a = 1

a += 2

print(a)  # 3

  • -=

a = 3

a -= 1

print(a)  # 2

  • *=

a = 3

a *= 2

print(a)  # 6

  • /=

a = 10

a /= 5

print(a)  # 2.0

  • %=

a = 4

a %= 3

print(a)  # 1

3. 逻辑运算符

  • 逻辑运算符

    • and
    • or
    • not

  • 优先级

    • () > not > and > or

print(2 > 1 and 1 < 4 or 2 < 3 and 9 > 6 or 2 < 4 and 3 < 2) # 结果: True

  • not

    • 布尔取反 -> 相当于 js 中 !

lis = []
boolean = ''
if not lis:
    boolean = True
else:
    boolean = False

print(boolean) # True

  • 数字的比较
        or: x or y 如果 x != 0 y != 0 则返回 x -> 当 x 为 true y 为 ture 返回 x
            x or y 如果 x = 0 y != 0 则返回 y -> 当 x 为 false 直接返回 y

print(1 or 2)  # 1
print(3 or 2)  # 3
print(0 or 2)  # 2
print(0 or 100)  # 100

     and: x and y 如果 x != 0 y != 0 则返回 y 
             x and y 如果 x != 0 y = 0 则返回 y
             x and y 如果 x = 0 y != 0 则返回 x

        and: 如果第一个参数为False直接返回第一个参数,不考虑 and 后面的参数

print(1 and 2) # 结果: 2
print(2 and 0) # 结果: 0
print(0 and 2) # 结果: 0

  • 其他使用方法

    • 和 js 中的 || 用法一样

b = None

a = b or []

print(a)  # []

  • 面试题 从优先级的角度考虑

print(3 > 1 or 2 and 2) # 结果: True

4. 成员运算符

  • in -> 判断某个值是否在指定的序列中

a = 10
l = [1, 2, 3, 4, 5 ];

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

  • not in -> 判断某个值是否不在指定的序列中

a = 10
l = [1, 2, 3, 4, 5 ];

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

5. 身份运算符

  • == / != 和 is / is not 的区别:

    • == / != 是判断两个变量的值是否一致或不一致

    • is / is not 是判断两个变量所引用的对象是否一致或不一致(即: 判断两个变量的内存地址是否一致或不一致)

  • is 判断两个变量所引用的对象是否一致(即: 判断两个变量的内存地址是否一致)

a = 20
b = 20

if ( a is b ):
   print ("1 - a 和 b 有相同的标识")
else:
   print ("1 - a 和 b 没有相同的标识")

if ( id(a) == id(b) ):
   print ("2 - a 和 b 有相同的标识")
else:
   print ("2 - a 和 b 没有相同的标识")

  • is not 判断两个变量所引用的对象是否不一致(即: 判断两个变量的内存地址是否不一致)

a = 20
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 有相同的标识")