有一条语句是用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)
答案中写着
signal(signal > 0)
这是什么意思
Tags:
当条件为真时
(signal>0)
计算为1
,否则0
。因此,乘法会使任何负值归零(与零相乘产生零),而其他值则不变(与一相乘产生恒等式)在Python中,真值对应于1,假值对应于0
signal > 0
将为True或False,并相应地具有1或0值signal * (signal > 0)
如果为真,则简单地返回信号的值;否则返回0。可以说是添加上面的片段if代码与
signal * (signal > 0)
的工作相同,就好像if
条件为False一样,信号值保持不变在表达式中
如果
signal
为正,则signal>0
为真,否则为假。True为1,False为0。所以如果你用signal
乘以signal>0
,如果signal
为正,则得到signal
,否则为零这是一种更令人困惑的写作方式
相关问题 更多 >
编程相关推荐