侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 748 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

Python基础(4)之各种运算符

zze
zze
2019-01-26 / 0 评论 / 0 点赞 / 636 阅读 / 8251 字

不定期更新相关视频,抖音点击左上角加号后扫一扫右方侧边栏二维码关注我~正在更新《Shell其实很简单》系列

算数运算符

在 Python 中的算数运算符有如下几个:

  • +:加,a + b 则表示求 ab 的和;
  • -:减,a - b 则表示求 ab 的差;
  • *:乘,a * b 则表示求 a 乘以 b 的积;
  • /:除,a / b 则表示求 a 除以 b 的商;
  • //:地板除(取商的整数部分),a // b 则表示求 a 除以 b 的商的整数部分;
  • %:取余,a % b 则表示求 a 除以 b 的余数;
  • **:幂,a ** b 则表示求 ab 次幂的结果;

看如下示例:

var1 = 10
var2 = 7
res = var1 + var2
print(res) # 17
res = var1 - var2
print(res) # 3
res = var1 * var2
print(res) # 70
res = var1 / var2
print(res) # 1.4285714285714286
# /  除以 , 结果永远是一个小数
res = 6 / 3
print(res) # 2.0
# // 地板除,取结果整数部分,结果不是小数
res = 6 // 3
print(res) # 2
res = 6 // 4 #
print(res) # 1
# // 地板除,如果除数或者被除数含有小数,那么结果是小数
res = 6 // 3.0
print(res) # 2.0

# % 取余
res = var1 % var2
res = 10 % -7  # -4  3+(-7)=-4
res = -10 % 7  # 4   -3+7 = 4
res = -10 % -7 # -3  -3

# ** 幂运算
res = 2 ** 3
print(res) # 8

比较运算符

Python 中的比较运算符有如下几个:

  • >:大于,a > b 则表示 a 是否大于 b
  • <:小于,a < b 则表示 a 是否小于 b;、
  • >=:大于等于,a >= b 则表示 a 是否大于等于 b
  • <=:小于等于,a <= b 则表示 a 是否小于等于 b
  • ==:等于,a == b 则表示 a 是否等于 b
  • !=:不等于,a != b 则表示 a 是否不等于 b

注意,单个等号 = 是赋值哦。

比较运算符只会产生两个结果: TrueFalse,看如下示例:

res = 5 > 6
print(res) # False
res = 10 <= 10
print(res) # True
res = 10 <= 3
print(res) # False

# == 比较等号两边的值是否相等
res = 9 == 9
print(res) # True

# != 比较等号两边的值是否不相等
res = 9 != 9
print(res) # False

赋值运算符

Python 中的赋值运算符有如下几个:

  • =:赋值,如 a = b 就是将 b 的值赋给 a
  • +=:累加赋值,a += ba = a + b
  • -=:累减赋值,a -= ba = a - b
  • *=:累乘赋值,a *= ba = a * b
  • /=:累除赋值,a /= ba = a / b
  • //=:累地板除赋值,a //= ba = a // b
  • %=:累商赋值,a %= ba = a % b
  • **=:累幂赋值,a **= ba = a ** b

例:

# 给 a 赋值 2
a = 2
print(a) # 2

# +=,累加
# a += b  ->  a = a + b
a = 10
a += 5
print(a) # 15

# %=
# a %= b  ->  a = a % b
a = 7
a %= 2
print(a) # 1

成员运算符

在 Python 中的成员运算符有:
in:是否存在,a in container 表示 a 是否存在于 container 中;
not in:是否不存在,a not in container,表示 a 是否不存在于 container 中;

其功用类似 SQL 中的 innot in,只不过在 Python 中针对的是容器类型对象,而在数据库中针对的是某表的某列,其结果一定是布尔值。

例:

# 针对于字符串
"""要求字符串是一个连续的片段"""
strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
res = '好' in strvar
print(res) # True
res = "千篇一律" not in strvar
print(res) # False
res = "趣灵" in strvar
print(res) # True

# 针对于 list tuple set
listvar = ["范冰冰","李冰冰","周冬雨"]
res = "范冰冰" in listvar
print(res) # True

tuplevar = ("易烊千玺","胡军","刘德华")
res = "刘德华" not in tuplevar
print(res) # False

setvar = {"何润东","吕布","刘备"}
res = "吕布" in  setvar
print(res) # True

# 针对于 dict
"""针对于字典中的键来进行判定"""
dictvar = {"lb":"吕布","hrd":"何润东","wy":"王源"}
res = "lb" in  dictvar
print(res) # True
res = "hrd" not in  dictvar
print(res) # False
res = '吕布' in dictvar
print(res) # False

身份运算符

Python 中的身份运算符有:

  • is:是否相同地址,a is b 则表示 ab 在内存中的地址是否相同;
  • is not:是否不同地址,a is not b 则表示 ab 在内存中的地址是否不同;

例:

# 整型
var1 = 2222
var2 = 2222
res = var1 is var2
print(res) # True

# 浮点型
var1 = -90.1
var2 = -90.1
res = var1 is var2
print(res) # True

# 容器类型数据,地址不同
var1 = (1,2,3)
var2 = (1,2,3)
res = var1 is not var2
print(res) # False

逻辑运算符

Python 中的逻辑运算符有如下几个:

  • and:全真则真,一假则假;
  • or:全假则假,一真则真;
  • not:真变假,假变真;

例:

# and 逻辑与
"""全真则真,一假则假"""
res = True and True   # True
res = True and False  # False
res = False and True  # False
res = False and False # False
print(res)

# or  逻辑或
"""全假则假,一真则真"""
res = True or True  # True
res = True or False # True
res = False or True # True
res = False or False# False
print(res)

# not 逻辑非
"""真变假,假变真"""
res = not True # False
res = not False # True
print(res)

# 逻辑短路
True or print("111") # True
False and print("222") # False

逻辑运算符的优先级从高到低排序为 () > not > and > or,看如下示例:

res = 5 or 6 # 5
res = 5 and 6 # 6
res = 5 or 6 and 7
# 6 and 7 => 5 or 7 => 5
res = 5 and 6 or 7
# 5 and 6 => 6 or 7 => 6
res = not 5 or 6 and 7
# not 5 => False or 6 and 7 => False or 7 => 7
res = not (5 or 6) and 7
# not 5 and 7 => False and 7
res = 1>2 and 3<4 or 5>6 or 7<10 and 100>99
# False and True or False or True and True
# False or False or True
# False or True
# True

res = 1<2 or 3<4 or 5>6 or 7<10 and 100>99
# True or True or False or True and True
# True or True or False or True
# True or False or False or False

print(res)

位运算符

Python 中的位运算符有如下几种:

  • &:按位与;
  • |:按位或;
  • ^:按位异或;
  • <<:按位左移;
  • >>:按位右移;
  • ~:按位非;

例:

# & 按位与
var1 = 19
var2 = 15
res = var1 & var2
print(res)
"""
10011
01111
00011  => 3
"""

# | 按位或
var1 = 19
var2 = 15
res = var1 | var2
print(res)
"""
10011
01111
11111  => 31
"""

# ^ 按位异或 (两者不一样返回True,两者一样返回False)
var1 = 19
var2 = 15
res = var1 ^ var2
print(res)
"""
10011
01111
11100 => 28
"""

# << 左移  5 乘以 2的2次幂
res = 5 << 2
"""
0000101
0010100 => 20
"""
print(res)

# >> 右移 5 除以 2的1次幂
res = 5 >> 1
"""
0000101
0000010
"""
print(res) # 2

# ~ 按位非  公式: -(n+1)
res = ~(20)
print(res) # 21

小结

在上述介绍的各种运算符中:

  • 优先级最高的符号是 ** 幂运算;
  • 优先级最低的符号是 = 赋值;

整体来说一元运算符的优先级高于二元运算符:

  • 一元运算符:同一时间,只操作一个数字的是一元(如 -~);
  • 二元运算符:同一时间,只操作二个数字的是二元,(如 +-*/);

逻辑运算符的优先级从高到低排序为:

  • ()
  • not
  • and
  • or

算数运算符的优先级规律为:

  • 先算乘除,后算加减;

位运算符的优先级从高到低为:

  • >><<
  • &
  • ^
  • |

所有运算符类型优先级从高到低排序如下:

  • 算数运算符
  • 位运算符
  • 比较运算符
  • 身份运算符
  • 成员运算符
  • 逻辑运算符
0

评论区