Python math.cmp() 方法



Python math.cmp() 方法用于比较两个数字。此方法接受两个数值(例如 x 和 y)作为参数,并返回两个数字之差的符号:如果 x < y,则返回 -1,如果 x == y,则返回 0,如果 x > y,则返回 1。

此方法仅在 Python 2.x 版本中可执行,在 Python 3.x 中不起作用。

语法

以下是 Python math.cmp() 方法的语法 -


 math.cmp( x, y )

参数

  • x , y − 这些是要比较的数值。

返回值

如果 x < y,则此方法返回 -1,如果 x == y,则返回 0,如果 x > y,则返回 1

以下示例显示了 Python math.cmp() 方法的用法。在这里,我们将两个数字作为参数传递给此方法,并显示返回值。但是,此方法仅适用于 Python 2。


print "cmp(80, 100) : ", cmp(80, 100)
print "cmp(180, 100) : ", cmp(180, 100)
print "cmp(-80, 100) : ", cmp(-80, 100)
print "cmp(80, -100) : ", cmp(80, -100)

当我们运行上述程序时,它会产生以下结果——

cmp(80, 100) : -1
cmp(180, 100) : 1
cmp(-80, 100) : -1
cmp(80, -100) : 1

但是,要在 Python 3 中比较两个数字,可以定义一个用户定义的函数,其工作方式类似于这个内置的 cmp() 方法,如下例所示。

在这里,我们定义了一个函数 “cmp”,它接受两个参数 x 和 y。当在三种情况下( x > y、 x < y、 x = y)调用时,此用户定义的函数将返回值 x 和 y 的符号差。


def cmp(x, y):
	 	return (x > y) - (x < y)
#x > y
x = 17
y = 11
print("The cmp value for x>y is : ",cmp(x, y),"\n")
#x<y
x = 5
y = 33
print("The cmp value for x<y is : ",cmp(x, y),"\n")
#x=y
x = 20
y = 20
print("The cmp value for x=y is : ",cmp(x, y))

输出

The cmp value for x>y is : 1

The cmp value for x<y is : -1

The cmp value for x=y is : 0