Python小于/大于issu

2024-10-08 19:20:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试编写这个程序,并为这个问题寻找修复/答案。我对编写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)

谢谢你的帮助!


Tags: 答案程序ifokerrorelsegoodprint
2条回答

字符串“按字典顺序”比较。换句话说,它比较第一个字符,然后第二个,然后第三个。。。你知道吗

如果其中一个字符“大于”另一个字符,则设置整个字符串的比较。所以

"100" < "20"

实际上是True,因为"1" < "2"。你知道吗

如果你要比较数字数据,就用数字代替字符串。这会让你的生活更轻松,例如:

BatPower = 100

if BatPower >= 75:
    print("BatPower - GOOD")  

正如其他海报所指出的,主要问题是,您试图将字符串当作数字进行比较,这将失败,因为字符串比较是如何操作的(一次一个字符,从左边开始)。即使100 > 70是真的,"100" > "70"不是真的;字符7大于字符1。你知道吗

您需要做的是将所有内容都更改为整数,也许可以将字符串包装到int()函数中。但一旦你这么做了,你的代码还是有缺陷的。让我们用BatPower = 25遍历一个示例。你知道吗

if BatPower >= 70:

不,25 >= 70不是真的。下一行:

elif BatPower <= 50:

由于25 <= 50,这确实是真的。因此,在每一步中,您都希望使用>=而不是<=。这将解决另一个问题。你知道吗

相关问题 更多 >

    热门问题