Python中文本和数字相等判断方式
作者:Yongqiang Cheng
这篇文章主要介绍了Python中文本和数字相等判断方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python文本和数字相等判断
虽然数字的字符串值被认为与整型值和浮点型值完全不同,但整型值可以与浮点值相等。
Python 进行这种区分,因为字符串是文本,而整型值和浮点型都是数字。
Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 C:\Users\foreverstrong>python Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> 42 == "42" False >>> >>> 42 == 42.0 True >>> >>> 42.0 == 0042.000 True >>> exit() C:\Users\foreverstrong>
将整型值与浮点值进行相等判断是十分不理智的。
Python判断两个数据相等问题
引用
数据的三个维度:
值, 数据类型,唯一标识
- 值: 数据计算时使用的值
- 数据类型:数据的存储类型
- 唯一标识:id ,也就是数据的内存地址的标识
如果想要判断id 或者说唯一标识是否相等,使用is进行判断
# 值相等的数据,唯一标识和数据类型不一定相等 bool1 = False int1 = 0 # 值相等 print(bool1 == int1) # True # 数据类型不等 print(type(bool1) == type(int1)) # False # 唯一标识不等 print(id(bool1) == id(int1)) # False # 值和数据类型相等的,唯一标识不一定相等 list1 = [1, 2, 3] list2 = [1, 2, 3] # list1 和list2 值相等 print(list1 == list2) # True # list1和list2 数据类型相等 print(type(list1) == type(list2)) # True # list1 和list2 的唯一标识不等,也就是说,其所在的内存空间不一致 print(id(list1) == id(list2)) # False # 唯一标识相等的, 值和数据类型必然相等 # 在同一内存空间中只能储存同一个值 str1 = 'abc' str2 = 'abc' # str1 和str2 的唯一标识相等 print(id(str1) == id(str2)) # True # 数据类型相等 print(type(str1) == type(str2)) # True # 数据值相等 print(str1 == str2) # True
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。