python2.7中不同类型之间的比大小
2018-01-05 14:49
120 查看
可以看到,字符串为空的时候也比数字类型大,这是因为python2.7中按照如下规则进行比较:
1、任何两个对象都可以比较。
2、相同类型的对象(实例),如果是数字型(int/float/long/complex),则按照简单的大小来比较;如果是非数字型,且类(型)中定义了__cmp__(含__gt__,__lt__等)则按照__cmp__来比较,否则按照地址(id)来比较
3、不同类型的对象(实例),如果其中一个比较对象是数字型(int/float/long/complex等),则数字型的对象<其它非数字型的对象;
并且如果两个都是非数字型的对象,则按照类型名的顺序比较, tuple () > str > list [ ] > [b]dict {} > number。[/b]
4、对于自定义的类(型)实例,如果继承自基本类型,则按照基本类型的规则比较(1-3)。否则,old-style class < new-style class, new-style class之间按照类型名顺序比较,old-style class之间按照地址进行比较
5、bool类型是int的子类,且True=1, False=0,比较时按照1-4来比较,如True > -1, True < 4.2, True < "abc"等
所以2.7如果没注意类型的话可能踩坑:‘3’ > 300 // true
python 3.X 不支持str和数字类型对比,会报异常
相关文章推荐
- js中相等、大小 不同类型之间是如何进行对比的。
- 【基础】ABAP不同变量类型之间数值大小比较
- 小白学习Python遇到的一些2.7与3.X之间的不同问题
- python 之 不同类型对象的内存占用、大小比较
- Python 不同对象比较大小示例探讨
- python2.7学习笔记(二)List和Tuple类型
- 不同类型数组之间的数据拷贝
- ios nsstring(补充 与不同类型之间的转化)
- hdu1701 ACMer 不同数据类型之间的转换
- Python+matplotlib绘制不同大小和颜色散点图实例
- C++中不同类型数据之间的转换(调用库函数)
- C++在不同操作系统的基本数据类型字节大小(转)
- python输出不换行(同一行输出不同类型数据)
- python 类型大小
- 通过input上传图片,判断不同浏览器及图片类型和大小的js代码
- windows下python 2.7与mysqldb之间的折腾(registry_key/vsvarsall==)
- c/vc/c++不同数据类型之间的转换
- 不同数据类型之间的隐含转换
- python中的数据类型与json的数据类型之间的转化
- C# 不同类型数组之间的转换