“min(X(X>0), Y, Z)”在 Python 中是什么意思?

Ves*_*per -7 python

有一条用 Python 编写的语句,我无法理解该特定行的含义。

声明是:

signal = -16
powerRating = 30
energyRating = 30
socHigh = 1
soc = 15
freq = 15
chargeEff = 0.93
answer = min(signal*(signal>0), powerRating, (energyRating*socHigh - soc)*60.0/dataFreq/chargeEff),0)
Run Code Online (Sandbox Code Playgroud)

在答案陈述中有写

signal(signal > 0)
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

khe*_*ood 6

在表达式中

signal*(signal>0)
Run Code Online (Sandbox Code Playgroud)

signal>0如果signal为正则为真,否则为假。True 为 1,False 为 0。所以,如果你乘signalsignal>0,你signal如果signal是正的,否则为零。

这是一种更令人困惑的写作方式

max(signal, 0)
Run Code Online (Sandbox Code Playgroud)