请教python代码只执行一半
试着改进一段python代码作用是4个led顺序点亮,然后再倒序熄灭。
改完后运行4个led顺序点亮正常,后就不再变化了。
请教坛友:代码哪里不对了?应该怎样改进?
先谢谢!
#LED流水灯:先熄灭4个LED,然后逐个点亮4个LED,反复进行
from machine import Pin
import time
def ledz():
ledpinz=
leds=[]
for i in range(4):
leds.append(Pin(ledpinz,Pin.OUT))
for n in range(4):
while True:
for n in range(4):
leds.value(1)
time.sleep(0.3)
time.sleep(0.3)
def ledf():
ledpinf=
leds=[]
for i in range(4):
leds.append(Pin(ledpinf,Pin.OUT))
for n in range(4):
while True:
for n in range(4):
leds.value(0)
time.sleep(0.3)
time.sleep(0.3)
try:
while True:
ledz()
ledf()
except KeyboardInterrupt:
pass ai分析的
lxa000 发表于 2025-1-6 23:36
按你说的改进后 如下 :
import time
from machine import Pin
ledpins = [ Pin(v, Pin.OUT) for v in ]
ledstats =
def led_ctrl():
for i,v in enumerate(ledstats):
ledpins.value(v)
##
while True:
for i in range(4):
ledstats = 1
led_ctrl()
time.sleep(1)
for i in range(4):
ledstats = 0
led_ctrl()
time.sleep(1) while True:
for n in range(4):
leds.value(1)
time.sleep(0.3)
time.sleep(0.3)
执行到这段时,这死循环在这里出不去了。
看来是个新手。
给你写一个:
import time
from machine import Pin
ledpins = [ Pin(v, Pin.OUT) for v in ]
ledstats =
def led_ctrl():
for i,v in enumerate(ledstats):
ledpins.value(v)
##
while True:
for i in range(4):
ledstats = 1 if ledstats == 0 else 0
led_ctrl()
time.sleep(1)
ai修改from machine import Pin import time def ledz(): """ 控制 4 个 LED 逐个点亮的函数 """ ledpinz = leds = [] for i in range(4): leds.append(Pin(ledpinz, Pin.OUT)) for _ in range(4):# 这里使用 _ 替代 n,避免与内层循环的变量名冲突 for led in leds:# 直接遍历 leds 列表 led.value(1) time.sleep(0.3) time.sleep(0.3) def ledf(): """ 控制 4 个 LED 逐个熄灭的函数 """ ledpinf = leds = [] for i in range(4): leds.append(Pin(ledpinf, Pin.OUT)) for _ in range(4):# 这里使用 _ 替代 n,避免与内层循环的变量名冲突 for led in leds:# 直接遍历 leds 列表 led.value(0) time.sleep(0.3) time.sleep(0.3)try: """ 主程序,不断交替执行逐个点亮和逐个熄灭的操作 """ while True: ledz() ledf() except KeyboardInterrupt: """ 捕获键盘中断异常,通常用于在程序运行时通过键盘操作中断程序 """ pass 好奇,这是用来控制哪个上面的led啊? 佚天 发表于 2025-1-6 09:21
while True:
for n in range(4): ...
非常感谢上面坛友的解答。
我会根据你们的指导继续试验。 dianziwg 发表于 2025-1-6 08:55
好奇,这是用来控制哪个上面的led啊?
我外接了 4个led和 4个按键。
刚才试了junyee,aidn两位坛友的代码,
都是顺序点亮顺序熄灭的 。
我想要顺序点亮,倒序熄灭的 。 13行 后改成:
while True:
for i in range(4):
ledstats = 1
led_ctrl()
time.sleep(0.5)
for i in range(4):
ledstats = 0
led_ctrl()
time.sleep(1) junyee 发表于 2025-1-6 19:50
13行 后改成:
按你说的改进后 如下 :
查了一下发现RP2040单片机挺强大的,应该很好玩。 junyee 发表于 2025-1-7 09:29
ok!
这回成了。
非常感谢! qyg123 发表于 2025-1-7 00:50
查了一下发现RP2040单片机挺强大的,应该很好玩。
是的 。
用这种单片机做啥子数控收音机/数控稳压电源/电子手表。。。
都不在话下。
所以现在暂时放下51
转到学习ESP32。 junyee 发表于 2025-1-6 19:50
13行 后改成:
你昨天发的代码咋没了 ?
今天拍了一下段视频:
页:
[1]
2