Javascript Python中是否有运算符来检查和比较类型和值?
我知道像Javascript Python中是否有运算符来检查和比较类型和值?,javascript,python,python-3.x,python-2.7,Javascript,Python,Python 3.x,Python 2.7,我知道像Javascript这样的其他语言 a==和===运算符它们还有a!=还有==
Javascript
这样的其他语言
a==和===
运算符它们还有a!=还有==a===和==代码>(即检查类型并同时比较值的单个运算符,如===运算符),如果没有,我们如何实现它。您可以使用“is”运算符。例如:
a = 1
b = True
print(a == b)
print(a is b)
输出:
> True
> False
这将回答您的两个问题:
a=5
b=6
#To check value
print(a==b)
#output - False
#To check type
print(type(a)==type(b))
#output - True
检查类型
type(VariableName)
对于比较,很明显我们使用==,如果您要对任何特定的数据类型进行特定的比较,那么答案可能会有所不同否,并且您自己也无法真正实现它
您可以使用type
检查对象的类型,但是如果您只编写一个函数来检查type(x)是type(y)并且x==y
,那么您会得到类似[1]
和[1.0]
的结果,显示为等效结果。虽然这可能满足您所述的要求,但我从未见过这样的情况,即这不是要求中的疏忽
您可以尝试实现自己的深层类型检查比较,但这需要您知道如何深入研究执行比较可能需要处理的每个类型。对于内置容器类型可以这样做,但没有办法使其通用
顺便说一句,是
如果你不知道是做什么的话,它看起来很像你想要的,但实际上它是完全不同的is
检查对象标识,而不是类型和值,导致类似x=1000的结果;x+1不是1001
仅用于检查我们使用的变量类型
类型
x = 10
type(x) # int
如果要检查变量是否为特定类型,我们使用isinstance
x = 2.0
isinstance(x, int) # False
isinstance
也可用于检查类型组
x = 10
isinstance(x, (int, float)) #True
要检查等式和类型,您可以使用
=
运算符和两个type()
或isinstance()
中的任意一个组合来获得所需的结果。这是否回答了您的问题?Python中没有“抽象比较”操作符,即Javascript的=
。Python=
与Javascript==
类似,但请记住,Python和Javascripts数据模型是不同的,因此请务必阅读Python文档了解详细信息。Python通常是一种强类型语言,不同类型之间的比较会引发错误,而不是像Javascript那样尝试隐式类型转换。在Python中,只有isinstance(variable,int)
,isinstance(variable,str)
等可以与=
一起使用,没有对象和非对象的概念,一切都是对象。默认情况下,==
将比较用户定义类中的对象标识,除非用户以其他方式定义该类型的行为(通过重写\uuuuuuueq\uuuueq
)。要按标识比较任何对象,可以使用is
运算符。@furas我不认为这是op所要求的。在Javascript中,有两个“相等”操作符,=
和=
。前者将尝试强制类型(如果它们不同),因此,例如,42='42'
将在JS中计算为true
。Python中没有等效的概念。是否有一个运算符同时检查类型和值。然后可以使用和运算符。e、 g如果a==b并且类型(a)==type(b):
@Neeraj,如果您得到了解决方案,那么您可以勾选它。或者我是来帮你的。谢谢!!:)这是可行的,我已经试过了,只是想问问有没有像Python中的===这样的操作符。顺便说一句,感谢您的回复。@Neeraj single运算符将用于在python中分配引用,虽然没有==
运算符,但不是这样做的<代码>是检查对象标识,而不是类型和值。例如,'abc'是'abcd'[:3]
。