Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Python中是否有运算符来检查和比较类型和值?_Javascript_Python_Python 3.x_Python 2.7 - Fatal编程技术网

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]