Python获取用户输入并将输入与字符串进行比较

时间:2015-12-28 08:47:44

标签: python raspberry-pi user-input led

我正在编写一个程序,用户可以选择一种颜色,并使用Raspberry Pi将所述颜色的LED点亮。接受用户输入并尝试将其与颜色进行比较后,我得到“NameError:name'red'未定义”。我该如何解决这个问题?

这是我的代码:

import RPi.GPIO as GPIO
import time

GPIO.setwarnings(False)

#use raspberry pi board numbers
GPIO.setmode(GPIO.BOARD)  

#GPIO output channel
GPIO.setup(7, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)
GPIO.setup(32, GPIO.OUT)
GPIO.setup(37, GPIO.OUT)
GPIO.setup(40, GPIO.OUT)
GPIO.setup(33, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)

#get led color
ledColorList = input("What color of light do you want to turn on? Red, green, blue, yellow, or all").split(' ')

#blink function
def blink(pin):
    GPIO.output(pin,1)
    time.sleep(.25)
    GPIO.output(pin,0)
    time.sleep(.25)
    return

if ledColorList[0] == RED:
    blink(7)  

#turn off all pins
GPIO.cleanup()

3 个答案:

答案 0 :(得分:1)

我认为您可以将输入强制转换为小写并通过raw_input将其输入:

public class Person {
    Long id;
    String name;
    String type;
}

public class MainClass {
    List<Person> persons;
}

然后检查

ledColorList = raw_input("What color of light do you want to turn on? Red, green, blue, yellow, or all").lower().split(' ')

答案 1 :(得分:0)

RED是一个字符串:它应该放在引号之间。

答案 2 :(得分:0)

对于python 2.x,您可以使用raw_input()代替input(),因为

  

在Python 2.x中,input()需要一个Python表达式,这意味着如果键入red,它会将其解释为名为red的变量。如果你输入&#34; red&#34;,那就没关系了。