基于Python 2中变量的内容,无法点亮和熄灭LED

时间:2016-01-15 22:11:13

标签: python raspberry-pi2

我正在研究一个气象站,它来自加拿大环境部多伦多的数据。如果风速和风寒结果超过或低于某些数字,我想在面包板上点亮LED。

风速警告使用以下代码正常工作:

if ((cityObject.get_quantity(wind)) > windmax: GPIO.output(13,GPIO.HIGH)
else: GPIO.output(13,GPIO.LOW)

风寒警告证明更复杂。当没有明显的风寒时,环境加拿大会返回“无”。但是,最终,它也会返回一个负整数。以下代码点亮我的风寒警告LED,确实应该关闭:

chillzero = "None"

if (cityObject.get_quantity(chill)) == chillzero: GPIO.output(11,GPIO.LOW)

if (cityObject.get_quantity(chill)) < chillmax: GPIO.output(11,GPIO.HIGH)
else: GPIO.output(11,GPIO.LOW)

在撰写本文时,以下内容将返回无

print cityObject.get_quantity(chill)

知道为什么这段代码导致我的LED保持点亮状态?当风寒低于-15C时,我只希望它出现。

3 个答案:

答案 0 :(得分:0)

我假设你混淆了字符串"None"和类型None

print cityObject.get_quantity(chill)会打印None的类型代表,这就是为什么你会看到无印刷的原因。

而不是:

if (cityObject.get_quantity(chill)) == chillzero:

尝试:

if cityObject.get_quantity(chill) is not None:

此外似乎还有一些redunant电话,所以你也可以试试这个:

if (cityObject.get_quantity(chill)) < chillmax:
    print "Windchill: %s" % cityObject.get_quantity(chill)
    GPIO.output(11, GPIO.HIGH)
else:
    # Would be greater than or equal to chillmax, or return None
    GPIO.output(11, GPIO.LOW)

答案 1 :(得分:0)

在这种情况下,问题似乎是Python不将环境加拿大的风寒结果视为整数,尽管结果包含数字。这段代码修好了它。

chillmax = int(cityObject.get_quantity(chill))
    if (cityObject.get_quantity(chill)) is not None:
        if chillmax < -15:
            GPIO.output(11,GPIO.HIGH)
       else:
            GPIO.output(11,GPIO.LOW)

答案 2 :(得分:0)

由于这是您的第一个任何类型的编码项目,看起来您可能只是在某处遇到数据类型问题。如果有疑问,如果需要,只需要一步一步地做。

System.out.println("java " + example.optional_double_test(null));
System.out.println("java " + example.optional_double_test(123.456));

System.out.println("java " + example.optional_string_test(null));
System.out.println("java " + example.optional_string_test("greetings"));