我是Python和Raspberry Pi的新手。我试图缩短我的代码,并对代码中的重复部分使用for
循环,比如将所有引脚更改为高和低。
我正在尝试使用for
循环来访问引脚。这可能吗?
import RPi.GPIO as GPIO
from time import sleep
R1=22
R2=10
R3=9
R4=11
GPIO.setup(R1, GPIO.OUT)
GPIO.setup(R2, GPIO.OUT)
GPIO.setup(R3, GPIO.OUT)
GPIO.setup(R4, GPIO.OUT)
for x in range(1, 5):
print "We're on time %d" % (x)
GPIO.output(R + %d % (x), GPIO.HIGH)
sleep(1)
GPIO.output(R + %d % (x), GPIO.LOW)
sleep(1)
GPIO.cleanup()
这类事情是可能的,但通常使用list
或dict
:更好
pins = [22, 10, 9, 11]
for pin in pins:
GPIO.setup(pin, GPIO.OUT)
for x in range(1, 5):
GPIO.output(pins[x], GPIO.HIGH)
sleep(1)
GPIO.output(pins[x], GPIO.LOW)
sleep(1)
不能像那样创建变量名称。你必须有相同的变量名,并更改它指向的内容:
pins = [R1, R2, R3, R4]
for pin in pins:
GPIO.setup(pin, GPIO.OUT)
for pin in pins:
GPIO.output(pin, GPIO.HIGH)
sleep(1)
GPIO.output(pin, GPIO.LOW)
sleep(1)