Python - 确保变量保持正数

nma*_*mat 3 python variables numbers

我正在寻找一种优雅的方法来确保给定变量保持正值.

我有两个变量保持正浮点数,我根据某些条件递减它们.最后,我想保证我仍然有正数(或最多0).伪代码看起来像这样:

list = [...]

value1 = N
value2 = M

for element in list:
    if ... :
        value1 -= X
    if ... :
        value2 -= Y
Run Code Online (Sandbox Code Playgroud)

有没有比ifs在最后添加两个更优雅的解决方案?

Kat*_*iel 23

我不清楚你想做什么 - 变量可能是负面的,或者它们不能.


Con*_*ius 7

在迭代结束时使用value1 = max(0, value1)和相同value2.


kin*_*all 5

对于花车,我喜欢max(0, value)Constantinius 已经给出的。您甚至可以将它与减量结合起来,并使用元组解包一次处理两个值:

value1, value2 = max(0, value1-1), max(0, value2-1)
Run Code Online (Sandbox Code Playgroud)

仅适用于整数的一些技巧(为了记录,因为我已经发布了它们而没有意识到您正在处理浮点数):

递减时,您可以使用:

value -= value and 1
Run Code Online (Sandbox Code Playgroud)

假设该值总是从 >= 0 开始,这不会让它低于 0。

当该值为零时,计算结果为value -= 0。当 value 不为零时,它的计算结果为value -= 1

您还可以使用更具可读性的三元运算符:

value -= 1 if value > 0 else 0
Run Code Online (Sandbox Code Playgroud)