我一直在尝试编写这个程序,并为这个问题寻找修复/答案。我对编写Python还不熟悉。你知道吗
BatPower = "100"
if BatPower >= "70":
print("BatPower - GOOD")
elif BatPower <= "50":
print("BatPower - OK")
elif BatPower <= "30":
print("BatPower - CRITICAL")
else:
print("CRITICAL ERROR READING BATPOWER!")
因此,正如您所看到的“BatPower=”100“,它不是返回值“BatPower-GOOD”,而是返回“BatPower-OK”。当我输入'BatPower=“2”'时也是如此。它返回“BatPower-OK”
以下是一些其他输入和输出:
BatPower = "75"
BatPower - GOOD
BatPower = "30"
BatPower - OK
BatPower = "29"
BatPower - OK
BatPower = "99"
BatPower - GOOD
BatPower = "1"
BatPower - OK
如你所见,我从来没有得到临界输出。好的输出效果很好,直到达到100。你知道吗
编辑: 最终工作代码:
BatPower = 60
BatStatus = "Passing..."
if BatPower >= 70:
BatStatus="BatPower - GOOD"
elif BatPower >= 30:
BatStatus="BatPower - OK"
elif BatPower >= 0:
BatStatus="BatPower - CRITICAL"
else:
BatStatus="CRITICAL ERROR READING BATPOWER!"
print(BatStatus)
谢谢你的帮助!
字符串“按字典顺序”比较。换句话说,它比较第一个字符,然后第二个,然后第三个。。。你知道吗
如果其中一个字符“大于”另一个字符,则设置整个字符串的比较。所以
实际上是
True
,因为"1" < "2"
。你知道吗如果你要比较数字数据,就用数字代替字符串。这会让你的生活更轻松,例如:
正如其他海报所指出的,主要问题是,您试图将字符串当作数字进行比较,这将失败,因为字符串比较是如何操作的(一次一个字符,从左边开始)。即使
100 > 70
是真的,"100" > "70"
不是真的;字符7
大于字符1
。你知道吗您需要做的是将所有内容都更改为整数,也许可以将字符串包装到
int()
函数中。但一旦你这么做了,你的代码还是有缺陷的。让我们用BatPower = 25
遍历一个示例。你知道吗不,
25 >= 70
不是真的。下一行:由于
25 <= 50
,这确实是真的。因此,在每一步中,您都希望使用>=
而不是<=
。这将解决另一个问题。你知道吗相关问题 更多 >
编程相关推荐