美文网首页
值大小比较

值大小比较

作者: 是阿离 | 来源:发表于2017-09-13 22:00 被阅读0次

    问题

    写了一个自信满满的函数

    def cmp(x, y):
        return x == y
    

    嗯 对,判断x跟y是否相等

    a = '2'
    b = 2
    print cmp(a, b)
    

    猜结果是啥……

    知识

    很简单的问题,结果为False
    python中对值的比较是要看该值是哪种类型
    python docs中对于不同类型的比较时这样定义的:

    CPython implementation detail: Objects of different types except numbers are ordered by their type names; objects of the same types that don’t support proper comparison are ordered by their address.

    根据自己当前用到的情况来看,不同类型的数值比较是没大有意义的,所以在对Numeric与String类型进行比较时,一般会将Numeric显式转化为String(str(num))。

    Tips:

    is==不同,is判断的是a对象是否就是b对象
    值的类型可以通过type(a)来判断

    python对象的大小比较规则:

    1、数字通过相对大小进行比较
    2、字符串按照字典顺序(编码顺序),一个字符接一个字符进行比较
    3、列表和元组从左到右对每部分的内容进行比较
    4、字典通过排序后的(键,值)列表进行比较,pyton3.0中不支持
    5、数字混合类型pyton3.0中不支持,拼音。6中允许
    

    参考文章

    python对象的比较(is,==,对象大小比较>,<)
    python基本数据类型大小比较

    相关文章

      网友评论

          本文标题:值大小比较

          本文链接:https://www.haomeiwen.com/subject/woglsxtx.html