Python:各类运算符详解及其优先级

本文深入讲解Python中的各类运算符,包括算数运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符及身份运算符。通过实例演示每种运算符的使用方法和优先级,帮助读者掌握Python编程基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表达式

由一个或者几个数字或者变量和运算符组合成的一行代码,通常会返回一个结果

运算符

由一个以上的值经过变化得到新值的过程就叫运算
用于运算的符号叫运算符,有8种运算符:

  • 运算符分类
  • 算数运算符
  • 比较或者关系运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算
  • 成员运算
  • 身份运算符
算数运算符

进行算数运算的符号,在python种没有自增自减运算符

“+”号,用于数据运算,和连接字符串。任何数据类型 加 字符串,都等于字符串。

# +,-跟正常算术运算符一模一样
a = 9+3-2
print(a)
# 乘号用星号(*)代替
a = 9 * 4
print(a)
# 除号用斜杠(/)代替
# 在Python2.x 和python3.x 中,除号(/)结果可能不一致,此处以3系列为准
a = 9/4
print(a)


# % 取余运算
# 两个数字相除应该有商数有余数
# % 只会得到余数
a = 9 % 4
print(a)

# // 表示取商运算,也叫地板除
a = 9 // 4
print(a)

# ** 表示幂运算
a = 9 ** 4
print(a)

a = 3 ** 3
print(a)

10
36
2.25
1
2
6561
27
比较运算符

对两个变量或者值进行比较的运算符,比较的结果是布尔值,即True/False

# == , 等于号
a = 3 ** 4
# 下面语句执行书序是
# 1, 计算 a == 80
# 2. 把结果放入b中
b = a == 80
print(b)


# != 不等于
print( 9 != 8 )

# > 大于
# < 小于
# >= 大于等于
# <= 小于等于

False
True

这里还有一个语法:
意思为:将a值与2的比较结果,赋给b,b得到的是一个布尔值。

a= 1
b = a == 2
b
-------------------------------
False
赋值运算符

简单的最常用的=运算符,他的优先级别低于其他的运算符,所以对该运算符往往最后读取。

# = , 赋值
a = 0
c = a = 4

# +=, 是缩写,
a = 0
a += 7 # a = a+ 7 的缩写
print(a)


# 所有数学运算符都有缩写形式
# -=, ×=, /=, //=, %=, **=,都是缩写形式

7
逻辑运算符

对布尔值进行计算的符号,有以下三种:

  • and 逻辑与
  • or 逻辑或
  • not 逻辑非
    在python中逻辑运算没有异或运算。
运算规则:

and看做乘法, or看做加法,True看做1, False看做0
则逻辑运算就能转换成整数数学运算
最后结果如果是0则为False, 否则为True

# 逻辑运算符案例
a = True
b = False
c = True

# 以下式子等价于 d = 1 * 0 + 1
d = a and b or c
print(d)


d = a or b and a
print(d)

True
True

短路语句用法。

2>1 and print('lalala')
-----------------------------
lalala

上边是将布尔值当数值来计算。逻辑运算还有一种运算方法,为运算符的原始用法:

a = 1 and 2 + 2
print(a)
------------------------------
4

程序运行逻辑为,先看第一表达式转换成布尔值的结果,如果结果为真,那么它会看第二个表达式转换为布尔值的结果,如果只有两个表达式的话,就只看到第二个表达式,并返回该表达式的值。

此处的1 and 2,判断1为真,直接返回2的值,a=2+2=4。

如果判断第一个表达式为False,直接停止接下来的判断,并返回第一表达式的值,也就是0。

如果有多个表达式,按此规则,依次往后看。
p.s undefined、null、NaN、none、" "、0、false均视为False。

若果是或运算,和与运算不同,判断第一个表达式为真,就直接返回第一表达式的值,不看后边的了。第一表达式为假时,才往后看。

2>1 or print('lalala')
------------------------------
True
3 or 2
--------------
3

not非运算,就是结果取反。

a = 1
a =not a
print(a)
--------------------------------
False
逻辑运算的短路问题

逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回

# 逻辑运算的短路案例

# 下面的逻辑表达式,a的值一定是True,则运行到or的时候,整个表达式不在向下计算
a = True or xxxxxxxxxxx

# 下面表达式,如果xxx中包含赋值表达式,则结果很难预期
# 代码示例(伪代码)
b = 0
a = a or (b=9) and 6
# 假定上面表达式如果没有语法错误
# 则b最终的值应该是0而不是9
print(b)
print(a)
成员运算符号

用来检测某一个元素是否在一个序列里面,函数语句有in和not in,输出结果为true,false。

# 案例
l = [1,2,3,4,5]
a = 7

b = a in l
print(b)

a = 4
print(a in l)

print(a not in l)

False
True
False
身份运算
  • is: 用来检测两个变量是否是同一个变量
    语法就是 var1 is var2
  • is not: 两个变量不是同一个变量
a = 9
b = 9
print( a is b)

a = "I love wangxiaojing"
b = "I love wangxiaojing"
print( a is b)

True
False

运算符的优先级

永远记住,括号具有最高优先级

优先级的表格如下:
** 指数 (最高优先级)
~、 +、 - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
*、/、 %、 // 乘,除,取模和取整除
+、-加法减法
<< >> 左移,右移运算符
& 位 ‘AND’
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符

程序结构

  • 顺序结构:程序一般是一行一行的去执行,按顺序执行。
  • 分支结构:程序语句会根据条件去判断,走接下来哪一条语句。
  • 循环结构:重复的执行程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值