前言
一、Python中的运算符
二、Python运算符的类型
1.算术运算符
2.赋值运算符
3.比较运算符
4.逻辑运算符
5.运算符之间的优先级
6.其它运算符
位运算符
总结
在 Python 编程中,运算符是执行各种操作的基本工具。它们可以用于执行算术计算、比较值、逻辑判断等。正确理解运算符的优先级对于编写清晰、高效的代码至关重要。本文将详细介绍 Python 中的运算符类型及其优先级,并通过代码示例进行说明。
Python 中的运算符是编程中不可或缺的基本工具,涵盖了算术运算符用于数学计算、赋值运算符用于变量赋值、比较运算符用于值的比较、逻辑运算符用于布尔逻辑判断以及位运算符用于二进制位操作等多种类型,这些运算符按照一定的优先级规则在表达式中执行,正确理解和使用它们能够帮助开发者编写出更加高效、简洁且易于维护的代码,是掌握 Python 编程语言的基础要素之一。
算术运算符是用于执行基本数学运算的符号,它们能够对数值进行计算并返回结果。常见的算术运算符有 加+、减-、乘*、除/、求余%、求整//、次方**等。以下是算术运算符的使用。
a = 20
b = 10
c = a + b #加法运算
print(c) #输出:30
c = a - b #减法运算
print(c) #输出:10
c = a * b #乘法运算
print(c) #输出:200
c = a / b #减法运算
print(c) #输出:2.0
# 任何数余2 有0(偶数)和1(奇数)两种情况 可以用来判断奇数/偶数
# 任何数余n 有n种情况
c = 3 % 2 #求余运算
print(c) #输出:1
c = 12 // 5 #求整运算
print(c) #输出:2
c = 2 ** 3 #减法运算
print(c) #输出:8
赋值运算符中主要使用 =、+=、-=、*=、/=、**=、//=、%=几种, 使用赋值运算符(特别是复合赋值运算符)可以使代码更加简洁、易读、高效,并减少潜在的错误。在实际编程中,合理使用这些运算符可以提高代码的质量和可维护性。以下是赋值运算符的应用。
# 赋值运算符
# 定义一个变量i 将数值10赋予变量i = 就是赋值运算符 把右侧的值赋予左侧的变量
a = 10
a = a + 10 #算术运算符优先级高于赋值运算符
print(a) #输出:20
i = 10
i += 10
i += i
print(i) #输出:40
i -= 10
print(i) #输出:30
i *= 2
print(i) #输出:60
i /= 3
print(i) #输出:20.0
i = int(i)
print(i) #输出:20
i %= 8
print(i) #输出:4
i **=3
print(i) #输出:64
i //=2
print(i) #输出:32
比较运算符用于比较两个值的大小或相等性,比较运算符有等于(==
)、不等于(!=
)、大于(>
)、小于(<
)、大于等于(>=
)和小于等于(<=
),用于比较两个值并返回布尔结果(False、True)。
# 比较运算符 返回True 真 返回False 假
print(10 > 5) 输出:True
print(10 >= 8) 输出:True
print(10 <= 5) 输出:False
print(10 <= 2) 输出:False
print(10 == 20) 输出:False
print(10 != 20) 输出:True
# 类型不一致
print(10 == "10") 输出:False
# True相当于1 False相当于0
print(1 == True) 输出:True
print(0 == False) 输出:True
print(100 == True) 输出:False
# 连续比较 只要有一个不成立 最终都是False
# 连续比较 每一次都成立 最终才是True
print(10 > 8 > 5) 输出:True
print(10 > 8 > 5 > 3 > 20) 输出:False
print(3.0 == 3.00 == 3.000) 输出:True
print(-2 < 4.11 > 4 == 8/2) 输出:True
逻辑运算符(and
、or
、not
)用于对布尔值进行逻辑操作,组合或反转条件表达式的真假值。以下是逻辑运算符的使用。
and 且
# and 并且
# 左右两侧有一个为假 结果就是假
# 左右两侧都是真 结果才是真
# 左侧为假 返回左侧
# 左侧为真 返回右侧
print(10 > 5 and 5 > 3) 输出:True
print(10 > 5 and 50 > 100) 输出:False
print(10 > 5 and 50 > 40) 输出:True
print(10 > 100 and 500 < 400) 输出:False
print(0 and 10) 输出:0
print(10 > 5 and 1) 输出:1
print(False and True) 输出:False
print(True and False) 输出:False
print(1 and 2 and 88) 输出:88
or 或
# or 或者(左侧为真 或者右侧为真 结果就是真)
# 左侧为假 返回右侧
# 左侧为真 返回左侧
print(10 > 5 or 5 > 3) 输出:True
print(10 > 50 or 10 > 5) 输出:True
print(10 > 20 or 10 > 30) 输出:False
print(0 or 3) 输出:3
print(1 or 2 or 3) 输出:1
print(False or True) 输出:True
print(100 or 0) 输出:100
print(0 or False) 输出:False
print("" or 100) 输出:100
print(None or 100) 输出:100
print(0 or 2 or 3) 输出:2
not 否
# not 非 只可以返回True 和 False
print(not 0) 输出:True
print(not None) 输出:True
print(not "") 输出:True
print(not False) 输出:True
print(not 100) 输出:False
print(not "hello world") 输出:False
print(not "0") 输出:False
print(10 and not 0) 输出:True
需要注意的是,以上三个逻辑运算符在代码实现中是优先级的,以下将通过几个案例比较它们的优先级。
print(True or True and False)
假如是按照顺序执行程序或or优先级高于and,首先执行True or True返回True,再执行True and False返回False,最后输出False,假如and优先级高于or首先执行True and False返回False,再执行True or Flase返回True,最后输出False。执行程序:
可以看到最后的结果为True而不是Fasle,证明and优先级高于or。
再来看一下and与not的优先级:
print(not False and False)
同理,假如这段代码是按照顺序执行程序或not优先级高于and,首先执行not False返回True,再执行True and False返回False,最后输出False,假如and优先级高于not首先执行False and False返回False,再执行not Flase返回True,最后输出True。执行程序:
可以看到最后的结果为Fasle而不是True,证明not优先级高于and。
最后比较or与not的优先级
print(True or not False)
假设or的优先级高于not, 先计算True or False返回结果True,再计算not True返回结果False,最后输出Fasle。假设not的优先级高于or, 先计算not False返回结果True,再计算True or True返回结果True ,最后输出True 。执行程序:
可以看到最后的结果为True而不是Fasle,证明not优先于or。
综上所述,not优先级高于and优先级高于or
运算符之间也是有优先级的,我们来比较算术、赋值、比较和逻辑运算符的优先级,我们来用代码实现:
#算术运算符优先级高于赋值运算符
a = 10
a = a + 10
print(a)
# 比较运算符 高于 逻辑运算符
print(10 > 5 and False)
# 算数运算符 高于 比较运算符
print(10 + 5 > 12)
# 逻辑运算符 高于 赋值算术符
a = 0 or 1 and 2
print(a)
执行结果:
在 Python 中,算术运算符的优先级高于赋值运算符,比较运算符的优先级高于逻辑运算符,而算术运算符的优先级又高于比较运算符,逻辑运算符的优先级高于赋值运算符。它们的优先级为
算术>比较>逻辑>赋值
除了上述基本运算符,Python 还提供了一些其他运算符,如位运算符等。
位运算符
位运算符用于对整数的二进制表示进行操作。常见的位运算符包括:
按位与(&
)
按位或(|
)
按位异或(^
)
按位取反(~
)
左移(<<
)
右移(>>
)
以下是位运算符的使用示例:
a = 10 # 二进制表示为 1010
b = 4 # 二进制表示为 0100
print(a & b) # 按位与,输出:0
print(a | b) # 按位或,输出:14
print(a ^ b) # 按位异或,输出:14
print(~a) # 按位取反,输出:-11
print(a << 2) # 左移,输出:40
print(a >> 2) # 右移,输出:2
本文详细介绍了 Python 中的运算符类型及其优先级,并通过代码示例进行了说明。正确理解运算符的优先级对于编写清晰、高效的代码至关重要。在实际编程中,合理使用这些运算符可以提高代码的质量和可维护性。希望本文能帮助你更好地理解和应用 Python 中的运算符。