我是靠谱客的博主 大方宝贝,最近开发中收集的这篇文章主要介绍Python中数字和字符串比较大小问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

python 2.x中 不同数据类型可以相互比较的, 因此如果不注意类型验证就会出现’0.3’ > 1000这种无语法错误却明显不符合期望的结果,有一次我发现代码里的条件不管前台怎么传值都成立,最终才发现2.7的这个问题,在此记录一下

作者:知乎

任何两个对象都可以比较相同类型的对象(实例),如果是数字型(int/float/long/complex),则按照简单的大小来比较;如果是非数字型,且类(型)中定义了cmp(含gt,lt等)则按照cmp来比较,否则按照地址(id)来比较不同类型的对象(实例),如果其中一个比较对象是数字型(int/float/long/complex等),则数字型的对象<其它非数字型的对象;如果两个都是非数字型的对象,则按照类型名的顺序比较,如{} < “abc”(按照”dict” < “str”),而”abc” > [1,2], “abc” < (1,2)。对于自定义的类(型)实例,如果继承自基本类型,则按照基本类型的规则比较(1-3)。否则,old-style class < new-style class, new-style class之间按照类型名顺序比较,old-style class之间按照地址进行比较bool类型是int的子类,且True=1, False=0,比较时按照1-4来比较,如True > -1, True < 4.2, True < “abc”等上面的回答是针对Python2.x,3.x的有较大的变化,如str和int比较时会抛出异常等。

最后

以上就是大方宝贝为你收集整理的Python中数字和字符串比较大小问题的全部内容,希望文章能够帮你解决Python中数字和字符串比较大小问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部