【发布时间】:2016-07-24 04:43:21
【问题描述】:
我有一个列表和两个要比较的值:
mylist = [98, 10, 12]
w = 85
c = 90
for i in mylist:
if i <= w:
status = "OK"
elif i >= w and i < c:
status = "WARNING"
elif i >= c:
status = "CRITICAL"
print status
条件是: a) 如果列表中的所有元素都小于 w 和 c,应该打印 OK。 b) 如果任何元素大于 w 且小于 c,则应打印 WARNING。 c) 如果任何元素大于 c,则应打印 CRITICAL。
此代码打印正常,但应打印 CRITICAL。
【问题讨论】:
-
无法复制,打印了两个
OKs和三个CRITICALs。 -
要么您没有向我们展示实际代码,要么您对“停止”有了一个新的有趣的定义。
-
在实际循环中是否可能有
break或return?两者都会阻止循环继续。 -
那么你想让程序打印“Ok”、“Warning”和“Critical”吗?打印“警告”的行也永远不会运行。
-
如果不清楚预期结果是什么,就很难“纠正代码”。这显然会打印“OK”、“OK”、“CRITICAL”、“CRITICAL”、“CRITICAL”。这不是预期的结果吗?
标签: python list loops if-statement