一、Python中的算术运算符
运算符 | 描述 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 返回除法的余数 |
** | 幂次 |
// | 返回商的整数部分 |
# print(1 + 0.5) # 1.5 浮点型
# print(3 - 2.0) # 只要参与运算的有浮点数,那返回类型为浮点型
# print(10 / 2) # 5.0 除法运算结果都为浮点数
# print(9 / 4)
# print(9 // 4) # 整除,向下取整--取邻近这个数的整数,但要比这个数小
# print('------------------')
# print('-'*100)
# print(10 % 3) # %:模,x%y等价于x-((x//y)*y)) 取余
# print(-10 % 3) # 2 -10//3=-4 -4*3=-12 -10-(-12)=2
# print(2**2) # 2^2等价于2的幂次
# print(10-2*3)
# divmod() 一次性得到整除的商和余数
二、Python中的比较运算符
运算符 | 描述 |
== | 比较值是否相等 |
!= | 比较值是否不相等 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
# print(1 == 1) # True
# print(True == 1) # True True可以看作数值1
# print(False == 2) # False可以看作数值0u
# print(1.0 == 1) # 比较运算符--比较的是数值
# print('1.0' == 1) # 字符串不是数值
# print(1 != 2)
# print(1 <> 2) # 错误示范,在python3废除了这种写法
# 字符串与字符串作比较?
# print('abc' < 'abd') # True
# print('a' < 23) # str类型与int类型,数据类型不同,不能作比较
# print('a' >= 'a')
注意:
- int不能直接与str比较
- python3中不支持<>号,如:--->( 2<>3)
- ==与!=符号不能分开写成= =
- str与str之间比较的是ASCII,并且逐个比较
三、Python中的赋值运算符
运算符 | 描述 | 实例 |
= | 赋值运算符 | c=a+b |
+= | 加法赋值运算符 | c+=a等效c=c+a |
-= | 减法赋值运算符 | c-=a等效c=c-a |
*= | 乘法赋值运算符 | c*=a等效c=c*a |
/= | 除法赋值运算符 | c/=a等效c=c/a |
%= | 取余数赋值运算符 | c%=a等效c=c%a |
**= | 幂赋值运算符 | c**=a等效c=c**a |
//= | 取整除赋值运算符 | c//=a等效c=c//a |
四、Python中的逻辑运算符
运算符 | 表达式 | 描述 |
and | a and b | 逻辑与,a与b都为True则返回为True |
or | a or b | 逻辑或,a与b只要有一个为True则返回True |
not | not a | 逻辑非,当a为True,not a则为False |
# 逻辑运算符(且、或、非)
a = True
b = True
c = False
d = False
# print(a and b) # True
# print(a and c) # False
# print(a or c) # True
# print(not c) # True,not是反着来的
五、Python中的位运算符
运算符 | 描述 |
& | 按位与:两者都为1才为1,否则为0 |
| | 按位或,只有一个为1则为1,否则为0 |
^ | 按位异或:两者相等则为0,否则为1 |
# 位运算符
# a = 10
# b = 13
# print(bin(a), bin(b), sep='\n')
# print(bin(a ^ b)) # ob代表二进制数值 bin() 计算二进制,将数值转化为二进制
# 按位与
# a = 60
# b = 13
# print(bin(a)) # 111100
# print(bin(b)) # 1101
# print(a&b) # 1100 1*2^3+1*2^2+0*2^1+0*2^0=12
# 按位或
# a = 60
# b = 13
# print(bin(a)) # 111100
# print(bin(b)) # 1101
# print(a | b) # 111101 1*2^5+1*2^4+1*2^3+1*2^2+1*2^0=61
# 按位异或^
# a = 60
# b = 13
# print(bin(a)) # 111100
# print(bin(b)) # 1101
# print(a ^ b) # 110001 1*2^5+1*2^4+1*2^0=49
# print(bin(a ^ b)) # 0b 110001
# print(oct(a)) # 十进制转八进制
# print(hex(a)) # 十进制转十六进制
# print(bin(a)) # 十进制转二进制
# print(chr(97))
# 按位补码运算符
# a = 13
# print(bin(a)) # 1101
'''
~a=~1101
=-(1101+1)
=-(1110)
=-14
'''
# print(~a) # -14
# 按位左移运算符
a = 10 # (向右移动两位增加字长)1010<<2=101000
print(a << 2) # 1010<<2 = 101000 = 40
# 按位右移运算符
b = 10 # (向左移动两位右侧位数删除)1010>>2=10
print(b >> 2) # 1010>>2 = 10 = 2
六、Python中的成员运算符和身份运算符
1、成员运算符
in与not in是Python独有的运算符(全部都是小写字母),用于判断对象是否某个集合元素之一,非常好用,并且运行速度很快。返回结果为布尔值类型的True或者False
运算符 | 描述 |
in | 判断某个值是否在指定序列中,在则返回True |
not in | 判断某个值是否在指定序列中,不在则返回True |
2、身份运算符
身份运算符也是Python的特色语法(全部小写字母)
运算符 | 描述 |
is | 判断两个对象内存地址是否一致,是则返回True |
not is | 判断两个对象内存地址是否不一致,不是则返回True |
# 成员运算符与身份运算符
# 成员运算符(in、not in:判断某值是否在指定序列中)
# name = 'ZKH'
# name1 = 'ximeng'
# class_room = ['小许', '任雨', '砥砺前行', 'Paranoid', 'May', 'ZKH'] # []代表列表
# print(name in class_room) # True
# print(name1 not in class_room) # True
# 身份运算符(is、is not:判断两个对象的内存地址是否一致)
# a = [1, 2, 3]
# b = [1, 2, 3]
print(id(a)) # id()是查看内存地址
print(id(b))
print(a is b) # True
print(a is not b) # False
注意:is与==的区别
-
is用于判断两个变量的引用是否为同一个内存地址(可使用id()查看)
- ==用于判断两个变量是否相等
七、Python中的三目运算符
1、python中三目运算符的表示方法:
True_statements if expression else False_statements
a = float(input('请输入a的值:'))
b = float(input('请输入b的值:'))
print('a, b中较大的值为:', a if a > b else b)
if a and b != 0:
print(a/b)
pass
else:
print(a * b)
八、python中的运算符优先级
运算符优先级
下表列出了从最高到最低的所有运算符。优先级高的运算符优先计算或处理,同级别的按从左往右的顺序计算(赋值运算符除外,它是按从右往左的顺序)
运算符 | 描述 |
** | 指数(最高优先级) |
* / % // | 乘除取余整除 |
<=、<、>、>= | 比较运算符 |
= 、% =、/=、//=、-=、+=、*=、**= | 赋值运算符 |
is 、is not | 身份运算符 |
in、in not | 成员运算符 |
not or and | 逻辑运算符 |