1.运算符
1.1运算符的概念
- 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。
1.2运算符的分类
-
算术运算符
-
赋值运算符
-
比较运算符(关系运算符)
-
逻辑运算符
-
条件运算符(三元运算符)
1.算术运算符
• + 加法运算符
a=1+2
• - 减法运算符
a=3-2
• * 乘法运算符
a=3*2
• / 除法运算符
a=3/2
• // 整除,只会保留计算后的整数位,总会返回一个整型
a=3//2
• % 取模,求两个数相除的余数
a=3%2
• ** 幂运算,求一个值的几次幂
a=2**3

2.赋值运算符
简单的说,就是把等号右边的值赋值给等号左边的值
x=3
x=x+3 还可以写成x+=3
• += (x+= 3 相当于 x = x + 3 )
• -= (x -= 3 相当于 x= x - 3 )
• *= (x = 3 相当于 x = x 3 )
• **= (x **= 3 相当于 x = x ** 3 )
• /= (x /= 3 相当于 x = x/ 3 )
• //= (x //= 3 相当于 x = x // 3 )
• %= (x %= 3 相当于 x= x % 3 )

3.比较运算
比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
- >比较左侧值是否大于右侧值
- >= 比较左侧的值是否大于或等于右侧的值
- < 比较左侧值是否小于右侧值
- <= 比较左侧的值是否小于或等于右侧的值
特殊的比较方式
- == 比较两个对象的值是否相等
- != 比较两个对象的值是否不相等
- is 比较两个对象是否是同一个对象,比较的是对象的id
- is not 比较两个对象是否不是同一个对象,比较的是对象的id

注意:
1.如果是字符串的比较,比的是ASCII值.
字符串对位比较,两个字符串第一位字符的ASCII码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符,以此类推,需要注意的是空格的ASCII码是32,空(null)的ascii码是0.
2.is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。
==是python标准操作符中的比较操作符,是用来比较判断两个对象的value(值)是否相等.
is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同.


4.逻辑运算符
4.1 not 逻辑非
not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True
注意:
1.对于非布尔值, 非运算(not)会将其转换为布尔值,然后在进行取反.
- 例如:0、空字符串、None等,这些表示空性的值就会转化为False,剩下的全是True.
a = 123 # True
a = '' #False
a = 'Python' #True
a = 0 #False
a = not a
print('a = ',a)
4.2 and 逻辑与
and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False(与运算是找False的,如果第一个值为False,则不再看第二个值)
a=3
b=5
c=5
d=8
q = a<b and b>c #False
q = a<b and b<d #True
print ('q = ',q)
4.2 or 逻辑或
或运算两个值中只要有一个True,就会返回True(或运算是找True的)
a=3
b=5
c=5
d=8
q = a<b or b>c #True
q = a>c or b>c #False
print ('q = ',q)
4.3 非布尔值的与或运算
-
当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
-
非布尔值与运算的规则
• 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值 -
非布尔值或运算的规则
• 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
## 非布尔值的与或运算
#非布尔值与运算,找False
result = 1 and 2 #2
result = 0 and 2 #0
result = 0 and None #0
result = 2 and 1 #1
#非布尔值或运算,找True
result = 1 or 2 #1
result = 0 or 2 #2
result = 0 or None #None
result = 2 or 0 #2
5.条件运算符(三元运算符)

条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2
a = 1
b = 5
print('a 的值比较大') if a > b else print('b 的值比较大') # b 的值比较大
# 比较a,b的最大值
a = 2
b = 1
m = a if a > b else b
print(m) #2

6.运算符的优先级
Operator | Description | |
---|---|---|
:= | Assignment expression | |
lambda | Lambda expression | |
if – else
|
Conditional expression | |
or |
Boolean OR | |
and |
Boolean AND | |
not x
|
Boolean NOT | |
in , not in , is , is not , < , <= , > , >= , != , ==
|
Comparisons, including membership tests and identity tests | |
** | ** | Bitwise OR |
^ | Bitwise XOR | |
& | Bitwise AND | |
<<, >> | Shifts | |
+, - | Addition and subtraction | |
*, @, /, //, % | Multiplication, matrix multiplication, division, floor division, remainder [5] | |
+x, -x, ~x | Positive, negative, bitwise NOT | |
** | Exponentiation [6] | |
await x
|
Await expression | |
x[index], x[index:index], x(arguments...), x.attribute | Subscription, slicing, call, attribute reference | |
(expressions...),[expressions...], {key: value...}, {expressions...} | Binding or parenthesized expression, list display, dictionary display, set display |

网友评论