运算符
种类:赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符、三目运算符
1.赋值运算符
- +=:加减;连接符(连接字符串)
- -=、*=、/=:减、乘、除
- **=:幂赋值运算符
- //=:取整除赋值运算符
- %=:取模赋值运算符
详情:https://www.runoob.com/python/python-operators.html
2.算术运算符:+、-、*、/、%、**、//
# **
a=2
b=3
result = a ** b
print(result) # 2*2*2=8
# //
a=9
b=2
result = a // b
print(result) # 9/2=4.5 取整:4
# %
b=2
a=9
result = a % b
print(result) # 9/2=4余1 结果为1
3.关系运算符:==、!=、>、<、>=、<=
返回结果为布尔类型(false;true)
小整数和大整数:数值is比较
4.逻辑运算符:and(逻辑与)、or(逻辑或)、not(逻辑非)
逻辑运算符的运算结果也是返回true或false
(1)and:逻辑与
# and
# true and true----->true
# true and false----->false
# false and true----->false
# false and false----->true
a = 3
b = 4
c = 5
d = 10
result = b>a and b>=a
print(result) #------>true
result = c>d and a >c
print(result) #------>false
result = d<c and b>=a
print(result) #------>false
result = b<a and b>c
print(result) #------>true
(2)or :逻辑非
or
# true or true ------->true
# true or false ------->true
# false or true ------->true
# false or false ------->false
a = 1
b = 2
c = 3
d = 4
result = (a+b)>=c or b>a
print(result) #----->true
result = c>b or a>b
print(result) #----->true
result = d<c or b>a
print(result) #----->true
result = (d-c)>b or (a+b)>d
print(result) #----->false
(3)not:就是取反
flag = False
result = not flag
print(result) #---->true
重点介绍:
二进制(0b)、八进制(0o)、十进制、十六进制(0x)(0-9、a-f)
5. 位运算:&类似and;|类似or;~取反;^异或;<<左移动;>>右移动
print(3 & 2) # ----->2
'''
1 True 0 False
0000 0011
& 0000 0010
--------------
0000 0010
'''
print(5 | 3) #----->7
'''
0000 0101
| 0000 0011
-------------
0000 0111
'''
#将十进制的数字对应的二进制进行取反操作
print(~5) #------>-6
'''
0000 0101
取反:
1111 1010
-6
1111 1010 减1
1111 1001 取反
0000 0110 6
看第一位 (第一位是符号的,只要第一位是1就是负数,第一位是0就是整数)
'''
# 异或 ^ 相同的是0,不同的是1
print(3^5)
'''
左右两侧转为二进制,看上下进行比较
3 0000 0011
5 0000 0101
-----------
0000 0110----->6 结果转为十进制
'''
# 左移 << 左移右边补0
print(2<<1) #--->4
# 左移:m<<n m*2的n次方
# 右移 >> 右移补符号位
print(2>>1) # ----->1
# 右移:m>n m//2的n次方
6. 三目运算符
三目运算符
# 格式:表达式 ? 真 : 假
# result = (8>10 ? '真':'假')
# print(result) ----->SyntaxError: invalid syntax
# python 的格式: 结果 if 表达式 else 结果
a = 6
b = 5
result = (a+b) if >ba else (b-a)
'''
判断表达式是True还是False
如果是True则将if前面的内容进行运算1,并将结果赋值给result
如果是False则将else后面的内容运算结果,并将结果赋值成result
'''
print(result) #----->11
7.运算符的优先级
# 运算符的优先级:从上打下,从左到右(大概了解)
'''
排序:
**
~
+ - (符号运算符)
* / // %
+ - (加减)
<< >>
&
^
|
== != > >= <= < <=
is is not
not
and
or
'''