-
python 变量与运算符-运算符
1、算数运算符
+、 -、 *、 /:除法元算,能把2个整数除法算出小数结果 //:跟java的除法一样 %、 自增、自减:python里没有这种运算,简化只能简化到b+=1,b-=1,b*=a 这种地步
2、比较(关系)运算法
== != > < <= >=
分析一下这段代码
>>> b =1 >>> b+=b>=1 >>> print(b) 2
首先,
1、比较运算符>= 的优先级要高于赋值运算符,参考资料 https://www.cnblogs.com/relex/p/11021291.html,所以先执行比较运算的结果为True
b+=True;
2、int 可以跟bool相加,相加是转型为int。因为bool是8位,所以跟int相加后,向大容量自动转型。
b = b+True=2;
再看看,除了数字可比较,string也可比较
>>> "abc">"ab" True >>> "adc">"abc" True
因为其实字符串是逐个比较的字符的ascii码
>>> ord("b") 98 >>> ord("d") 100
接下来,演示,除了dict,list、tuple、set都是可以比较大小的,至于怎么比较的,先不管。
>>> [1,2,3]>[1,3,2] False >>> (1,3,2)>(1,2,3) True >>> {"a","b","c"}>{"b"} True >>> {"a","b","c"}>{"a","d","b"} False >>> >>> >>> {"1":1,"2":2}>{"3":0,"4":1} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'dict' and 'dict'
3、逻辑运算符:与或非
and or not
4、成员运算符
一个元素是不是在一组元素里面
in not in
list、tuple、set、dict都可以有这种运算,区别是dict 要查的是key,不是value
>>> 2 in [1,2,3] True >>> 2 in (1,2,3) True >>> 2 in {1,2,3} True >>> 2 in {"1":2} False >>> >>> "1" in {"1":2} True
但是嵌套的list和tuple不能这么查,得去掉嵌套
>>> 2 in [[1,2,3],[3,4,5]] False >>> [2] in [[1,2,3],[3,4,5]] False >>> >>> >>> 2 in ((1,2,3),(3,4,5)) False
>>> 2 in ((1,2,3),(3,4,5))[0] True
5、身份运算符
is:比较内存地址是不是相等(是不是同一个对象)
not is:比较内存地址是不是不相等(是否不是同一个对象)
>>> a = 1 >>> b = 1.0 >>> a is b False >>> id(a) 4528917040 >>> id(b) 4531749488
>>> a is not b True
注意:set是无序的,tuple是有序的,所以如果顺序不一样,就会导致取值不一样,导致比较出来是false >>> a = (1,2,3) >>> b = (2,1,3) >>> a is b False >>> a==b False >>> a = {1,2,3} >>> b = {2,1,3} >>> a is b False >>> a==b True
6、数据类型比较
不推荐这么low的写法
>>> a = 1
>>> type(a)==int
True
推荐:isinstance(a,(type1,type2,type3))
a 是type1,type2,type3中的一种,返回True否则,返回False
>>> isinstance(a,(int)) True >>> isinstance(a,(str,tuple,list)) False
7、位元算符(把数字当作2进制来运算)
&:按位与
|:按位或
^:按位异或
~ :按位取反 <<:按位左移 >>:按位右移
原文:https://www.cnblogs.com/ansonwan/p/13402582.html
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比