简介
所谓运算符用于执行程序代码运算,会针对一个以上操作数来进行运算,可以执行某种运算或者是某项操作的符号,例如:4 + 5这个式子中的4和5就是操作数,它们中间的"+"就是加法运算符,加法运算符可以将左右两个操作数相加,并得到相加的结果
一、表达式(Expressions)
1.1、概念
表达式是将不同类型的数据(常亮、变量、函数)用运算符按照一定得规则连接起来的式子
表达式的组成由运算符(Operators)和操作数(Operands)
1.2 、示例代码
- 示例1
2 + 3 * 4
- 说明
+、*
就是运算符
2、3、4
就是操作数 - 示例2
n1 = 1 n2 = 3 n3 = n1 + n2
- 说明
实质就是操作数
二、算术运算符
2.1、概念
算术运算符包括四则运算符、求模预算符和幂运算符
算术运算符 表达式 说明 + x + y 加 - 两个对象相加 - x - y 减 - 得到负数或是一个数减去另一个数 * x * y 乘 - 两个数相乘或是返回一个被重复若干次的字符串 / x / y 除 - x除以y % x%y 取模 - 返回除法的余数 ** x**y 幂 - 返回x的y次幂 // x // y 取整除 - 返回商的整数部分
2.2、加 +
- 说明
当+
的两端都是数字时,则就是数学中的加法运算。
当+
两端都是字符串时,则就是把两端的字符串连接起来。 - 注意事项
- 布尔值
True
可以作为数字1
来使用,False
可以作为数字0
,所以他们可以和数字相加。(学完面向对象你就是清楚, 其实bool
继承自int
) - python 不允许字符串和数字相加
- 布尔值
- 示例代码
add1 = 3 + 4 print(add1) # 7 add2 = 3 + True print(add2) # 4 add3 = 3 + False print(add3) # 3 add4 = True * 0 print(add4) # 0 # add5 = "a" + 3 # 错误!不允许字符串和数字相加
2.3、减 -
- 说明
两个数相减。 - 注意事项
减法只能用于操作数字。 - 示例代码
a = 100 b = 50 c = 10 i = a - b i1 = c - true
2.4、乘 *
- 说明
两个数相乘。如果有一个是字符串一个是整数,则得到的重复整数次的字符串 - 示例代码
result1 = 3 * 4.1 print(result1) result2 = 2 * "Hello " print(result2) result3 = "world " * 3 print(result3)
2.5、幂 **
- 说明
x ** y
返回x
的y
次方x^y
- 示例代码
a = 2 b = 3 c = a**b print(c)
2.6、除 /
- 说明
取 - 示例代码
result1 = 10 / 2 print(result1) result2 = 10 / 3 print(result2) result3 = -11.3 / 3 print(result3)
三、比较(关系)运算符
2.1、概念
关系运算符是对两个对象进行比较
运算符 表达式 说明 == a==b 等于,比较对象是否相等,返回bool != a !=b 不等于,比较两个对象是否不相等,返回bool > a > b 大于,比较a是否大于b,返回bool < a < b 小于,比较a是否小于b,返回bool >= a>=b 大于等于,比较a是否大于或者等于b,返回bool <= a<=b 小于等于,比较a是否小于或者等于b,返回bool
2.2、说明
- 如果是两个数字则比较他们数学上的大小。
- 如果是两个字符串比较,则是比较的他们在码表中的顺序。先比较第一个字母,如果相等再比较第二个...
- 如果有布尔值参与比较,则
True
做1
来用,False
做0
来用。 - 数字和字符串不能进行比较!
- 比较运算符计算的结果一定是布尔值。
2.3、示例代码
- 示例
a = 21 b = 10 c = 0 if a == b : print ("1 - a 等于 b") else: print ("1 - a 不等于 b") if a != b : print ("2 - a 不等于 b") else: print ("2 - a 等于 b") if a < b : print ("3 - a 小于 b") else: print ("3 - a 大于等于 b") if a > b: print ("4 - a 大于 b") else: print ("4 - a 小于等于 b")
- 示例
#python中的比较运算符可以组成链接。只有每个运算符计算的结果都是 True ,最终的结果才会为 True。否则就是 False r1 = 5 > 4 > 3 print(r1) # True 因为 5 大于 4是 True,并且 4 大于 3 是 True r2 = 5 > 4 == (2 + 1) print(r2) # False 因为 5 大于 4 是 True,但是 4 == 2 + 1 是 False
四、逻辑运算符
1、概要
python 共支持 3 种逻辑运算符。
运算符 表达式 说明 and a and b 逻辑与,当a为True时才计算b or a or b 逻辑或,当a为False时才计算b not not a 逻辑非 Python的逻辑运算(and,or,not)与C/C++、Java等语言不太一样。这些语言的逻辑运算返回的值都是bool值,而Python返回的则不同
2、非运算 not
- 说明
取反,如果表达式为真则为假,反之假的则为真
3、与运算 and
- 运算规则
- 若左边的表达式为真,则返回右边表达式的值
- 否则,返回左边表达式的值
- 示例代码(非运算)
a = 20 b = 10 c = 0 print(a>b and b>c) #a>b为True继续计算b>c,b>c也为True则结果为True print(a>b and b<c)#a>b为True继续计算c<b,b>c结果为False则结果为False print(a>b or c<b) #a>b为True则不继续计算c<b,结果为True
- 示例代码(运算)
a = 30 b = 20 c += a > b and b print(c) #输出 20
4、或运算 or
- 非运算
有一个是True
结果就是True
由于任何类型都可以参与运算,所以更加准确的规则应该是:
如果第一个是True
或者相当于True
,则结果就是第一个数据,否则最终的结果就应该是第二个数据。 - 运算规则
a or b
- 如果a为真,无需计算b,就可得知整个表达式的真值为真,所以结果为a的值
- 如果a为假,继续计算b,b将决定整个表达式最终的值,所以结果为b的值
- 示例代码
a = 10 b = 20 c = 0 print(a>b or c<b) # 输出 true print(a > 100 or b > 100) #输出false print(a < 0 or b) #输出 b的值 20
5、附 真值表
Object bool值 "" False "Str" True 0 False 1 True ()空元组 False []空列表 False {}空字典 False None False
六、赋值运算符
1、说明
赋值运算符就是给变量赋值或者赋值加运算
2、支持的赋值运算符
运 算 符 | 说 明 | 举 例 | 展 开 形 式 |
---|---|---|---|
= | 简单的赋值运算 | x=y | x=y |
+= | 加赋值 | x+=y | x=x+y |
-= | 减赋值 | x-=y | x=x-y |
*= | 乘赋值 | x*=y | x=x*y |
/= | 除赋值 | x/=y | x=x/y |
%= | 取余数赋值 | x%=y | x=x%y |
**= | 幂赋值 | x*=y* | x=x*y* |
//= | 取整除赋值 | x//=y | x=x//y |
七、成员运算符
1、说明
如果在指定的序列中找到了,那么结果是True,如果没有找到,那么结果是False.
2、成员运算符
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
---|---|---|
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
八、身份运算符
1、说明
所谓身份运算符就是比较两个变量内存地址是否相等,类似 id(变量) == id(变量)
2、运算符
运算符 | 描述 | 示例 |
---|---|---|
is | is 是判断两个标识符是不是引用同一个对象 | x is y,类似 id(x) == id(y) |
is not | is not 是判断两个标识符是不是引用不同对象 | x is not y,类似 id(a) != id(b) |
3、与==的区别
-
is
用于判断 两个变量 引用对象是否为同一个 -
==
用于判断 引用变量的值 是否相等
a = [100,200]
b = [100,200]
print(b is a)
# False
print(b == a)
# True
九、运算符优先级(由高到低)
1、说明
运算符的优先级我不推荐大家去死记硬背,只需要记住一条碰到需要优先计算的使用()括起来
2、优先级
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (正负号)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
十、位运算符(了解)
1、说明
按位运算符是把数字看作二进制来进行计算的
运算符 表达式 说明 & a & b 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | a | b 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1 ^ a ^ b 按位异或运算符:当两对应的二进位相异时,结果为1 ~ ~a 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 << a<<2 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 >> a>>2 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
2、示例代码
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a & b # 12 = 0000 1100
print("1 - c 的值为:", c)
c = a | b # 61 = 0011 1101
print("2 - c 的值为:", c)
c = a ^ b # 49 = 0011 0001
print("3 - c 的值为:", c)
c = ~a # -61 = 1100 0011
print("4 - c 的值为:", c)
c = a << 2 # 240 = 1111 0000
print("5 - c 的值为:", c)
c = a >> 2 # 15 = 0000 1111
print("6 - c 的值为:", c)
3、转化函数
- 二进制数字字符串 -> 整形
int('00001111',进制) 默认10进制
- 整形 -> 二进制数字字符串
bin(number)