Python运算和运算符
运算: 由一个以上的值经过变化得到新值得过程,就是运算
运算符: 用于运算的符号,就是运算符
1.算术运算符
+ 加法运算 还是 字符串连接符 - 减法运算 * 乘法运算 / 除法运算 % 取余运算 // 取商运算 ** 幂运算
2.比较(关系)运算符
< 小于运算 > 大于运算 == 等于运算 <= 小于等于运算 >= 大于等于运算 != 不等于运算
3.赋值运算符
= 普通赋值运算 += 加法赋值运算 -= 减法赋值运算 *= 乘法赋值运算 /= 除法赋值运算 %= 取余赋值运算 //= 取商赋值运算 **= 幂赋值运算
所有运算赋值操作的格式都可以转换为[ 变量 = 变量 运算符 值 ] 如:
var += 5 相当于 var = var + 5
4.逻辑运算符
逻辑运算就是布尔值之间的运算,Python只有三种运算方式:
1).and 逻辑与运算(有假则假;两边为真才是真)
'''洗手: 左手洗了True,右手洗了True,洗完了 True 左手洗了True,右手没洗False,没洗完 False 左手没洗False,右手洗了True,没洗完 False 左手没洗False,右手没洗False,没洗完 False ''' z = 3 > 2 and 4 > 3 z = 2 > 3 and 5 > 2 print(z)
2).or 逻辑或运算(有真则真;两边为假才是假)
'''钥匙丢了找钥匙: 你没找到钥匙False,你媳妇也没有找到钥匙False,没进家门 False 你找到了钥匙True,你媳妇没找到钥匙False,进家门 True 你没有找到钥匙False,你媳妇找到了钥匙True,进家门 True 你和你媳妇同时找到了钥匙True和True,进家门 True ''' z = 3 > 2 or 5 > 2 z = 2 > 5 or 6 > 3 print(z)
3).not 逻辑非运算(真变假,假变真)
'''老爷们去了泰国 纯爷们儿True,做了手术,不是纯爷们儿了 False ''' z = not True a = 10 if(not a): print(10) else: print(20) print(z)
5.位运算符
在二进制基础上进行的逻辑运算就是位运算。
& 按位与运算 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | 按位或运算 只要对应的二个二进制位有一个为1时,结果位就为1 ~ 按位取反运算 对数据的每个二进制位取反,即把1变为0,把0变为1 ^ 按位异或运算 如果两个位中只有一位为 1,则将每个位设为 1 << 左移运算 相当于×2运算 >> 右移运算 相当于地板除2运算
6.成员运算符
检测一个数据是否在指定的容器(复合数据)当中
'''检测数据1是否在数据2中 格式:数据1 in 数据2 检测数据1是否不在数据2中 格式:数据1 not in 数据2 ''' # list = [20,30,40] # tuple = (3,4,5,6,20) # sets = {20,30,40,50} dicts = {'name':'joker','age':20} c = 'name' # 对应字典里面下标 strs = 'likeyou' c = 'like' z = c in strs print(z)
7.身份运算符
检测两个变量在内存中是否是同一个值
检测两个变量在内存中是不是同一个值 格式:数据1 is 数据2 检测两个变量在内存中是否不是同一个值 格式:数据1 is not 数据2
运算优先级的问题
例如:在数学中,1+5x2,乘法会优先运算。 我们的Python程序也是一样的,一个运算中存在多个运算符时,系统也有它自己的一套优先级的规则。 Python的运算优先级规则如下,从上向下按照优先级的由高向低依次排序 但是我们并不推荐各位死记硬背,因为我们自己写程序遇到优先级问题可以使用()解决,更方便,也更易读。 ** 指数(最高优先级) ~ + - 按位翻转, 一元加号和减号(最后两个的方法名为 +@ 和 -@) * / % // 乘,除,取模和取整除 + - 加法减法 >> << 右移,左移运算符 & 位 'AND' ^ | 位运算符 <= < > >= 比较运算符 <> == != 等于运算符 = %= /= //= -= += *= **= 赋值运算符 is is not 身份运算符 in not in 成员运算符 not or and 逻辑运算符
检测数据归属类型
type() 测试时可使用,开发尽量避免使用 格式:type(变量) isinstance() 检测一个数据是否由指定的类型创建 格式:isinstance(变量,检测的类型)