运算符/操作符—程序关系的构造者
算术运算符
+ - * / // ** %
注意:/ 是正常除法 // 是向下取整除法 +用于字符串/列表/元组是拼接,*是重复
print(1 + 2)
print(1 / 3)
print(1 // 3 )
print(2 ** 4)
print(100 - 2)
print(10%3)
算术运算符 | 意义 | 举例子 |
---|---|---|
+ | 加,数学意义加法;字符串/列表/元组的连接接; | 5+3;hello'+'world' |
- | 数学意义的减法,两个数相减 | 10-6 |
* | 数学意义的乘法;序列的重复 | 5*5;'hello'*5 |
/ | 数学上的除法 | 10/2 |
// | 数学上的除法,向下取整 | 10/3 |
% | 模,取余数 | 10%3 == 1 |
** | 幂,次方 | 2**3 == 8 |
比较运算符
< > <= >= == != 最终返回的是布尔值
注意:比较运算符可以使用在字符串上,但是< > <= >=用的不多,但是 ==与!=用的比较多
print(3 > 2)
print(10 < 20)
print('num' != 'num')
print('age' == 'agee')
比较运算符 | 意义 | 例子 |
---|---|---|
< | 小于 | 5<8 |
> | 大于 | 6>10 |
<= | 小于等于 | 5<=10 |
>= | 大于等于 | 4>=3 |
== | 等于(比较的是值) | 5 == 5;'name' == 'liyao' |
!= | 不等于 | 6!=6; 'age' != 18 |
赋值运算符
= += -= *= /= //= **= %= 通常用于变量的赋值
name = 'li_yao'
age = 18
num += 1
num -= 1
count %= 2
赋值运算符 | 例子 |
---|---|
= | name = 'liyao' |
+= | num += 1 |
-+ | num -= 1 |
*= | num *= 2 |
/= | num /= 4 |
//= | num //= 5 |
**= | num **= 2 |
%= | num %= 3 |
逻辑运算符
连接表达式或者值,对其进行布尔运算
优先级从左到右 ()> not > and > or
- 简单情况,两边都为布尔值或者表达式,最终结果是布尔值
逻辑操作符 | 意义 | 用法 |
---|---|---|
and | 同真为真,有假为假 | 2>3 and 6<10,True and False, False and 'name' |
or | 同假为假,有真为真 | 2>3 or 6<10,False or True, 2 or 3 |
not | 取反,真为假,假为真 | not (2>3),not False,not True, not 'age' |
- 两边至少有一边不是布尔值的情况
逻辑运算情况:符号两边有至少一个不是布尔值,则会对其进行布尔转换,在进行逻辑运算
* and 遇到假就停止,返回该布尔值对应的原值,直到最后一位,如果没假就返回最后一位原值
* or 遇到真就停止,返回该布尔值对应的原值,直到最后一位,如果没有真就返回最后一位值
* not 取反返回布尔值遇到逻辑运算和比较运算时,从左到右进行运算。也就是优先级一致
print(3 > 2 and 4 > 3)
print(0 and 1)
print(1 or 2 )
print(not 2)
print( False or 0 )
print( 0 or 1 < 3 )
print( 1 < 3 or 0)
成员操作符
用于判断序列(字符串/列表/元组),或者字典,集合中的是否存在某个元素 in not in
list1 = ['alex', 'bob', 'mei', 'li']
print('li' in list1)
print('alex' not in list1)
身份操作符
比较两个对象的地址是否一致 is not is
# 有可能会出现缓冲池,需要注意
str_test = 'name'
astr_test = 'name'
print(str_test is astr_test)