python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python文本和数字相等判断

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 或者说唯一标识是否相等,使用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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文