16.1-算数运算符:
运算符 | 描述 |
---|---|
+ | 加-两个对象相加 |
- | 减 - 得到负数或是一个数减去另一个数 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 |
/ | 除 - a除以b |
% | 取模 - 返回除法的余数 |
** | 幂 - 返回a的b次幂 |
// | 取整除 - 返回商的整数部分 |
实例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 10
a = 20
b = 10
print("a + b的值为:",a + b)
print("a - b的值为:",a - b)
print("a * b的值为:",a * b)
print("a / b的值为:",a / b)
print("a % b的值为:",a % b)
print("a ** b的值为:",a ** b)
print("a // b的值为:",a // b)
运行结果:
Python2 和 Python3 的区别:
在 Python2.7 中 11 / 4 = 2,在传统的算数中是等于 2.75 的,这是因为 Python2.7 中使用的是舍去式除法,当两个操作对象都是整数时,结果也是个整数,舍去式除法会舍去小数部分,如果想要在 Python2.7 中进行改变的话需要导入一个模块。但在 Python3 中,这个除法的结果是浮点数类型。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from __future__ import division
a = 11 / 4
print(a)
运行结果:
16.2-比较运算符:
运算符 | 描述 |
---|---|
== | 等于,比较对象是否相等 |
!= | 不等于 - 比较两个对象是否不相等 |
<> | 不等于 - 比较两个对象是否不相等,这个运算符类似 != 。(Python3中已废弃) |
> | 大于 - 返回a是否大于b |
< | 小于 - 返回a是否小于b。 |
>= | 大于等于 - 返回a是否大于等于b。 |
<= | 小于等于 - 返回a是否小于等于b。 |
实例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 10
a = 20
b = 10
if a == b: #a == b 返回 False
print("a == b")
else:
print("a != b")
if a != b: #a !=b 返回 True
print("a != b")
else:
print("a == b")
if a > b: # a > b 返回 True
print("a > b")
else:
print("a < b")
if a < b: # a < b 返回 False
print("a < b")
else:
print("a > b")
if a >= b: # a >= b 返回 True
print("a >= b")
else:
print("a <= b")
if a <= b: # a <= b 返回 False
print("a <= b")
else:
print("a >= b")
运行结果:
16.3-赋值运算符:
运算符 | 描述 |
---|---|
= | 简单的赋值运算符 |
+= | 加法赋值运算符 |
-= | 减法赋值运算符 |
*= | 乘法赋值运算符 |
/= | 除法赋值运算符 |
%= | 取模赋值运算符 |
**= | 幂赋值运算符 |
//= | 取整除赋值运算符 |
实例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 10
a = 20
b = 10
a += b #a += b 等效于 a = a + b
print("a += b:",a)
a -= b #a -= b 等效于 a = a - b
print("a -= b:",a)
a *= b #a *= b 等效于 a = a * b
print("a *= b:",a)
a /= b #a /= b 等效于 a = a / b
print("a /= b:",a)
#修改了变量 a 和 b 的值
a = 20
b = 10
a %= b #a %= b 等效于 a = a % b
print("a %= b:",a)
#修改了变量 a 和 b 的值
a = 20
b = 10
a **= b #a **= b 等效于 a = a ** b
print("a **= b:",a)
#修改了变量 a 和 b 的值
a = 20
b = 10
a //= b #a //= b 等效于 a = a // b
print("a //= b:",a)
运行结果:
16.4-位运算符:
运算符 | 描述 |
---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
\ | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1。 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1,且符号位进行补码,简单的可以理解为 ~a=-(a+1)。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。 |
实例:
按位运算符就是把数字看作二进制来进行计算的。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
以下设置变量 a = 60,b = 13
二进制格式: a = 00111100,b = 00001101
"""
a = 60 # a = 00111100
b = 13 # b = 00001101
print("按位与运算符:",a & b,bin(a & b)) # 12 = 00001100
print("按位或运算符:",a | b,bin(a | b)) # 61 = 00111101
print("按位异或运算符:",a ^ b,bin(a ^ b)) # 49 = 00110001
print("按位取反运算符:",~a,bin(-61)) # 60 -> -(60+1) 即 -61 转为二进制为 -00111101
print("左移动运算符:",a << 2,bin(a << 2)) # 240 = 11110000
print("右移动运算符:",a >> 2,bin(a >> 2)) # 15 = 00001111
运行结果:
16.5-逻辑运算符
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | a and b | 布尔"与" - 如果 a 为 False,a and b 返回 False,否则它返回 b 的计算值。 |
or | a or b | 布尔"或" - 如果 a 是非 0,它返回 a 的值,否则它返回 b 的计算值。 |
not | not a | 布尔"非" - 如果 a 为 True,返回 False 。如果 a 为 False,它返回 True。 |
实例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 10
a = 20
b = 10
if a and b:
print("变量 a 和 b 都为 True")
else:
print("变量 a 和 b 有一个不为 True")
if a or b:
print("变量 a 和 b 有一个为 True 或都为 True")
else:
print("变量 a 和 b 都不为 True")
if not(a and b):
print("变量 a 和 b 都为 False 或一个为 False")
else:
print("变量 a 和 b 都为 true")
运行结果:
16.6-成员运算符:
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 |
实例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
list = [11,22,33,44,[55,66,77,88]]
ret = 22 in list # 22 在 list列表中所以返回 True
print(ret)
ret = [55,66,77,88] in list # [55,66,77,88]该列表 在 list列表中所以返回 True
print(ret)
ret = 55 not in list # 55 不在 list列表中所以返回True
print(ret)
运行结果:
16.7-身份运算符:
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用自一个对象 |
is not | is not 是判断两个标识符是不是引用自不同对象 |
实例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 20
a = 20
b = 20
c = a is b # 类似于 id(a) == id(b),a 和 b 引用的是统一对象所以返回 True
print(c)
c = a is not b # a 和 b 引用的是统一对象所以返回 False
print(c)
运行结果: