基础不牢,地动山摇。一定要打牢基础哦!
大家好,我是小豪,今天给大家分享的是python基础--运算符。
python中运算符大部分跟数学里面的运算符用法一致,看起来很简单,不过就是有一点点多。python支持的运算符大概分为五大类,下面我给大家整理了一下:
一、数学运算符
数学运算符,也称为算数运算符,包括了加减乘除,整除,取余,幂以及圆括号,部分算数运算符还可以用在字符串中。话不多说,上图更直观:这是我用xmind写的笔记,也推荐正在学习的小伙伴下载个xmind,把每天学到的东西都记录下来。
二、比较运算符
比较运算符(关系运算符):>, <, ==, >=, <=, !=
注意:
1.所有比较运算的结果都是布尔值
2.数字数据不能和字符串数据进行比较
python中支持比较运算符的连写来表示范围
比如 :x = 10
print(0 <= x <= 100) # 输出True
三、逻辑运算符
python中的逻辑运算符:and(逻辑与)、or(逻辑或)、not(逻辑非)
(一) and(逻辑与运算)
1.运算规则:
a. 操作对象都是布尔值:两个都是True结果才是True,只要有一个是False结果就是False
True and True -> True
True and False -> False
False and True -> False
False and False -> False
2.应用场景:
希望两个或者多个条件同时满足才做什么事情,就使用逻辑与运算。相当于生活中的并且。
(二)or(逻辑或运算)
1.运算规则:
a.操作对象都是布尔值: 两个都是False结果才是False,只要有一个是True结果就是True
True or True -> True
True or False -> True
False or True -> True
False or False -> False
2.应用场景:
希望两个或者多个条件只要有一个满足就可以就使用逻辑或运算。相当于生活中的或者。
(三)not(逻辑非运算)
1.运算规则:
True 变 False , False 变 True
not True -> False
not False -> True
2.应用场景:
不满足某个条件就做什么,就用not。相当于在原基础上取反。
(四)操作对象不是布尔的时候
逻辑运算符语法上可以操作任何数据
1)数据1 and 数据2
----> 如果数据1的布尔值是True,结果是数据2
----> 如果数据1的布尔值是False, 结果就是数据1
2)数据1 or 数据2
----> 如果数据1的布尔值是True,结果是数据1
----> 如果数据1的布尔值是False,结果是数据2
补充: 数据的布尔值怎么确定
----> 所有为零为空的值都是False,其他数据的布尔都是True
(五)短路操作
and 的短路操作:
表达式1 and 表达式2
---->如果表达式1的结果是False, 表达式2不会执行
or 的短路操作:
表达式1 or 表达式2
---->如果表达式1的结果是True, 表达式2不会执行
四、赋值运算符
赋值运算符有:=、+=、-=、=、/=、%=、//=、*=
1)所有的赋值运算都是用来给变量赋值的
2)所有的赋值运算符的左边都必须是变量,复合赋值运算符左边的变量必须是已经赋值过的变量
3)所有赋值运算符的右边都可以是任意有结果的表达式
(一)基本赋值运算符
“=”,嗯对,就是一个等号。
“=”,在python中,就是将等号右边的值赋给等号左边
单个赋值例如: x = 10
还支持多个变量一起赋值,
比如:a,b = 1,2 ; a = b = 10
(二)复合赋值运算符
大概就有这些:+=、-=、=、/=、%=、//=、*=
emmm看不懂?别急,我把我多年收藏的宝贝给你拿出来,你看看就瞬间明白了
五、运算符的优先级
这个可能有点难,但是不要紧,做个了解就好了
运算符的优先级,就是在同一个式子中,某某运算优先计算,他们的优先级是:数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)。
如果有点难懂的话,再给你写个:
从左至右优先顺序排列: ** > *,/,%,// > +, -
记住哦,有括号先算括号里面的
六、位运算
(一)位运算的特点
效率高、内存消耗少
(二)位运算运算符
&(按位与)、|(按位或)、^(异或)、~(按位取反)、>>(右移)、<<(左移)
所有的位运算都是直接操作数据在内存中存储的补码
1、 & (按位与)
数字1 & 数字2 - 两个都是1结果就是1,否则结果0
01101101(补) & 10101100(补) -> 00101100(补)
特点:某一位上的数和1与可以对这一位上的数进行保存,和0与会对这一位进行置0操作
print(5 & 9)
5: 00000101
9: 00001001
5 & 9 = 00000001(补) = 1
-5:10000101(原) - 11111011(补)
-9:10001001(原) - 11110111(补)
-5 & -9 = 11110011(补) - 11110010(反) - 10001101(原) - -13
print(-5 & -9) # -13
应用:判断数字的奇偶性
让被判断的数字和 1 进行按位与运算,结果如果是0说明是偶数否则是奇数
print(-35 & 1)
2、| (按位或)
数字1 | 数字2 - 只要有一个是1结果就是1,两个都是0结果才是0
3、^ (异或)
数字1 ^ 数字2 - 不同为1,相同为0
print(18 ^ 9) # 27
print(27 ^ 9) # 18
4、 ~
0变1,1变0
~ 数字
5) >>,<<
数字1 >> 数字2 - 数字1 // 2数字2
数字1 << 数字2 - 数字 * 2数字2
应用:高效率、快速的乘2或者2的次方数
print(6 << 1) # 6 * 2**1
print(5 << 2) # 5 * 2**2
print(6 >> 1) # 6 // 2**1
print(7 >> 1) # 7 // 2**1
print(-7 >> 1) # -7 // 2**1
age = 18
age *= 2
age = age << 1