问题
写了一个自信满满的函数
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中允许
网友评论