if语句,在python中打印附加列

2024-10-05 15:24:43 发布

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

我是pythin的新手,正在尝试为正在收集的一些数据编写if语句。在

import grovepi
import time
import datetime
import grovelcd
#headerline
print ("Time,Noise (db),Light (lux),Temperature (C),Humidity (rH)")

这里我有已经存在的标题行,当他们被打印到一个csv文件。我想另一个显示我概述的信息下面。在

^{pr2}$

以上是每个传感器的读数

print ("%f,%d,%d,%f,%f"%(timestamp,d,a,t,h))

我想要的是一个附加值,我在获取if语句获取该值并确定它是否与我想要的匹配时遇到问题。所有这些都应该是数值。在

我的想法是

if t > 35:
  print("Warning")
if h > 50:
  print("Warning")
if n > 75:
  print("Warning")
else:
  print("OK")

基本上,我得到的输出是这样的:

Noise  Light   Temperature   Humidity
85      500        34           76

我想达到的目的是:

Noise  Light   Temperature   Humidity  Note
85      500        34           76      OK

感谢任何帮助,我不太了解python。在


Tags: 数据importiftimeok语句lightprint
1条回答
网友
1楼 · 发布于 2024-10-05 15:24:43

如果要打印一个额外的列,如“1234567890,34.3,51.2,70.3,Warning”,则可以使用一个简单的布尔变量进行打印,如下所示:

while True:
    ...
    warning = t > 35 or h > 50 or n > 75
    print ("%f,%d,%d,%f,%f,%s" % (
        timestamp, d, a, t, h, "Warning" if warning else "OK"
    ))

在上面,我将warning定义为一个布尔条件,并使用if为内联if运算符打印“Warning”或“OK”。在

如果您需要额外的灵活性,您可以指定一个字符串变量:

^{pr2}$

如果需要显示多条消息,可以收集一个列表,如下所示:

^{3}$

这将收集一个列表中的所有警告(因此它将类似于["WarnT", "WarnH"]),那么如果该列表不是空的,则使用空格连接(" ".join(warnings)),那么它将是“WarnT WarnH”,否则将使用“OK”作为消息。根据需要调整输出。在

希望这有帮助。在

(顺便说一句,如果您想要一个固定的位数,可以考虑使用类似%0.2f而不是{}。我相信你可能想舍入到一个正常的精度,例如“59.03”而不是“59.031045032”之类的东西

相关问题 更多 >