即使不是真的,如果语句总是运行[关闭]
Posted
技术标签:
【中文标题】即使不是真的,如果语句总是运行[关闭]【英文标题】:If statement is always run even if not true [closed] 【发布时间】:2019-04-25 07:20:24 【问题描述】:我想在系统使用超过 400 瓦时设置功率上限。我试图用一个简单的 if 语句来做到这一点,但是当当前功率为 256 瓦时,if 语句也会运行
我的代码是这样的
a=400
node1 = Node(0, 0, 0, 0)
node1.getPowerUsage()
node1.getGpuPowerUsage()
node1.getCpuPowerUsage()
node1.setPowercap()
if(node1.getCpuPowerUsage() > a):
node1.setPowercap()
else:
print("nothing to do")
node1.getCpuPowerUsage()
的输出如下所示
print node1.getCpuPowerUsage()
277.54
我希望在 400 瓦以下时看到这样的输出
nothing to do
但实际上我得到了这个输出
Current Power : 247 Watts
Enabled persistence mode for GPU 00000000:35:00.0.
Enabled persistence mode for GPU 00000000:5B:00.0.
Enabled persistence mode for GPU 00000000:CD:00.0.
Enabled persistence mode for GPU 00000000:AA:00.0.
All done.
Power limit for GPU 00000000:35:00.0 was set to 125.00 W from 250.00 W.
Power limit for GPU 00000000:5B:00.0 was set to 125.00 W from 250.00 W.
Power limit for GPU 00000000:CD:00.0 was set to 125.00 W from 250.00 W.
Power limit for GPU 00000000:AA:00.0 was set to 125.00 W from 250.00 W.
All done.
nothing to do
或者你有其他建议我该怎么做?
【问题讨论】:
如果该值确实是浮点值277.54
,那么这应该可以正常工作。不能从这个示例代码中推断出问题。
查看print repr(node1.getCpuPowerUsage())
的实际 值。是字符串吗?
【参考方案1】:
将值转换为浮点数。
例如:
a=400
node1 = Node(0, 0, 0, 0)
node1.getPowerUsage()
node1.getGpuPowerUsage()
node1.getCpuPowerUsage()
node1.setPowercap()
if(float(node1.getCpuPowerUsage()) > a):
node1.setPowercap()
else:
print("nothing to do")
【讨论】:
有效,但我必须在 if 语句之前删除 node1.setPowercap()以上是关于即使不是真的,如果语句总是运行[关闭]的主要内容,如果未能解决你的问题,请参考以下文章