Python 比较两个值
假设我有两个变量:Python 比较两个值,python,testing,compare,Python,Testing,Compare,假设我有两个变量: foo1 = 2 foo2 = x # Actual value unknown foo1将始终相同(2),但foo2可以从x中获取任何整数值 现在,假设我想比较foo1和foo2(找出它是更小、更大还是相同大小)。我可以使用==测试它们是否相同: foo1 == foo2 # False 所以foo1不等于foo2 接下来,我看foo1是否比更大: foo1 > foo2 # False 所以我们现在知道foo1比foo2小 可以将其放入一个方便的函数中以比较
foo1 = 2
foo2 = x # Actual value unknown
foo1
将始终相同(2
),但foo2
可以从x
中获取任何整数值
现在,假设我想比较foo1
和foo2
(找出它是更小、更大还是相同大小)。我可以使用==
测试它们是否相同:
foo1 == foo2 # False
所以foo1
不等于foo2
接下来,我看foo1
是否比
更大:
foo1 > foo2 # False
所以我们现在知道foo1
比foo2
小
可以将其放入一个方便的函数中以比较值:
def cmp(arg1, arg2):
if arg1 == arg2:
return 0
elif arg1 > arg2:
return 1
elif arg1 < arg2:
return -1
print(cmp(2, 3))
1
如果$foo1
大于$foo2
0
如果$foo1
和$foo2
相等
-1
如果$foo1
低于$foo2
这与我在上面提到的Python函数相同
请注意,我并不是一个真正的Perl程序员,但我包含了这一点,以表明其他语言具有比较功能
创建一个函数是非常好的,工作也很好,但是是否有一些(类似于Perl使用的)内置函数/运算符可以为我比较这两个值(而不是自己构建)?Python2有。我们在Python3中去掉了它,以供参考。其他一些语言,如PHP、Ruby和C++20,都有这种功能。Python3文档中有您可能会发现有用的功能。我真的不明白为什么您希望
cmp
超过显式比较运算符。当然,无论如何,您都需要测试cmp
的结果才能对其进行任何有用的操作。如果这是绝对必要的,那么使用cmp=lambda x,y:(x>y)-(x
A)这就是perl的说法。最小化代码并不是这里最重要的事情。比较运算符效率更高,可读性更强。B) 它甚至都不这样做。我真的想不出会出现这种情况。你能提供一个吗?
my $foo1 = 2;
my $foo2 = $x;
$foo1 <=> $foo2;