我在这个问题上陷入了困境。这是我的工作代码:
import RPi.GPIO as GPIO ## Import GPIO library
import time ## Import 'time' library. Allows us to use 'sleep'
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(7, GPIO.OUT) ## Setup GPIO Pin 7 to OUT
##Define a function named Blink()
def Blink(kartai):
speed = 1
for i in range(kartai):## Run loop numTimes
print "Iteration " + str(i+1)## Print current loop
GPIO.output(7,True)## Switch on pin 7
time.sleep(speed)## Wait
GPIO.output(7,False)## Switch off pin 7
time.sleep(speed)## Wait
speed = speed - 1/kartai
print "Done" ## When loop is complete, print "Done"
GPIO.cleanup()
kartai = raw_input("Enter length of each blink(seconds): ")
Blink(int(kartai))
但是,每次迭代LED都会每秒闪烁一次。我认为发生这种情况是因为可变速度被视为int
,但是如果我将第7行重写为:
float (speed) = 1
我得到一个错误:
can't assign to function call
在此行中:
print "Iteration " + str(i+1)## Print current loop
我建议你仔细阅读python assignments的工作原理。你知道吗
如果希望
speed
成为浮点,请尝试speed = 1.0
或speed = float(1)
为什么不试试呢
它将分配一个浮点数而不是整数。你知道吗
当然(正如已经回答的那样),您仍然可以将整数转换为浮点数
相关问题 更多 >
编程相关推荐