Python 获取用户输入并将输入与字符串进行比较
Python getting user input and comparing input to string
我正在编写一个程序,用户可以在其中选择一种颜色并使用 Raspberry Pi 点亮所述颜色的 LED。在接受用户输入并尝试将其与颜色进行比较后,我得到 "NameError: name 'red' is not defined"。我该如何解决这个问题?
这是我的代码:
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()
RED 是一个字符串文字:它应该放在引号之间。
对于 python 2.x 你可以使用 raw_input()
而不是 input()
因为
In Python 2.x, input() expects a Python expression, which means that if you type red it interprets that as a variable named red. If you typed "red", then it would be fine.
我认为你最好将输入强制转换为小写并通过 raw_input:
ledColorList = raw_input("What color of light do you want to turn on? Red, green, blue, yellow, or all").lower().split(' ')
然后对照
检查
if ledColorList[0] == "red":
blink(7)
我正在编写一个程序,用户可以在其中选择一种颜色并使用 Raspberry Pi 点亮所述颜色的 LED。在接受用户输入并尝试将其与颜色进行比较后,我得到 "NameError: name 'red' is not defined"。我该如何解决这个问题?
这是我的代码:
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()
RED 是一个字符串文字:它应该放在引号之间。
对于 python 2.x 你可以使用 raw_input()
而不是 input()
因为
In Python 2.x, input() expects a Python expression, which means that if you type red it interprets that as a variable named red. If you typed "red", then it would be fine.
我认为你最好将输入强制转换为小写并通过 raw_input:
ledColorList = raw_input("What color of light do you want to turn on? Red, green, blue, yellow, or all").lower().split(' ')
然后对照
检查if ledColorList[0] == "red":
blink(7)