减去除非否定然后返回0

Hoo*_*ady 22 python math

我将序言,这完全是为了满足我的好奇心而不是在编码项目上需要帮助.但我想知道是否有人知道一个函数(特别是在python中,但我会接受一个有效的数学概念)有点像绝对值,如果给定一个数字将返回0如果为负数或返回该数字为正数.

伪代码:

def myFunc(x):
    if x > 0:
        return x
    else:
        return 0
Run Code Online (Sandbox Code Playgroud)

再一次,不是出于复杂性而只是好奇心问题.我现在需要它几次,并且想知道我是否确实需要编写自己的功能或者是否已经存在.如果没有执行此操作的函数,是否有办法使用表达式在一行中写入此值不会计算两次.

myVar = x-y if x-y>0 else 0
Run Code Online (Sandbox Code Playgroud)

如果没有对xy进行两次评估,那么我可以使用这样的解决方案.所以,如果有任何人有任何解决方案,我会很感激.

谢谢

Rob*_*wie 56

单程...

>>> max(0, x)
Run Code Online (Sandbox Code Playgroud)

  • Sry @Junuxx ......我想你只是在评论中打败了我.觉得我偷了你的分:) (2认同)

Dan*_*man 14

这应该这样做:

max(x-y, 0)
Run Code Online (Sandbox Code Playgroud)