Pythonban futó ciklus közben, hogyan lehet megoldani a kilépést gombnyomásra?
Sziasztok. Kezdő pythonos vagyok. Vettem egy Raspberry Pi mikroszámítógépet és éppen annak a GPIO portjára írnék egy futófény programot. Azt szeretném elérni, hogy a program indítása után lehessen választani, hogy az összes led világít vagy a futófény üzemel vagy a program kilép. Ezt addig sikerült is megvalósítanom, hogy a program elindul és megkérdezi mit szeretnél. Külön külön működik minden. De ha pl a futófény programrész fut, hogyan tudom megoldani, hogy a futófény rész fusson tovább de közben ismét lehessen választani, hogy mit is szeretnék. Most csak a CTRL-C vel tudok kilépni ha már fut. Jelenleg ez van:
#-*-coding:ISO-8859-2-*-
#---------------------------------------------------------------------------------------------------------------
import time
import RPi.GPIO as GPIO
from time import sleep
#---------------------------------------------------------------------------------------------------------------
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)
GPIO.setup(4, GPIO.OUT)
GPIO.output(17, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
GPIO.output(27, GPIO.LOW)
GPIO.output(22, GPIO.LOW)
GPIO.output(23, GPIO.LOW)
GPIO.output(24, GPIO.LOW)
GPIO.output(25, GPIO.LOW)
GPIO.output(4, GPIO.LOW)
print 'Mit csináljon? -1 fusson -2 minden világitson -0 megálljon és kilépjen'
n= input()
while n !=0 :
if n==1:
print "Fények futnak!"
GPIO.output(17, GPIO.HIGH)
GPIO.output(18, GPIO.HIGH)
GPIO.output(27, GPIO.HIGH)
GPIO.output(22, GPIO.HIGH)
GPIO.output(23, GPIO.HIGH)
GPIO.output(24, GPIO.HIGH)
GPIO.output(25, GPIO.HIGH)
GPIO.output(4, GPIO.HIGH)
time.sleep(1)
GPIO.output(17, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
GPIO.output(27, GPIO.LOW)
GPIO.output(22, GPIO.LOW)
GPIO.output(23, GPIO.LOW)
GPIO.output(24, GPIO.LOW)
GPIO.output(25, GPIO.LOW)
GPIO.output(4, GPIO.LOW)
GPIO.output(17, GPIO.HIGH)
time.sleep(1)
GPIO.output(18, GPIO.HIGH)
time.sleep(1)
GPIO.output(27, GPIO.HIGH)
time.sleep(1)
GPIO.output(22, GPIO.HIGH)
time.sleep(1)
GPIO.output(23, GPIO.HIGH)
time.sleep(1)
GPIO.output(24, GPIO.HIGH)
time.sleep(1)
GPIO.output(25, GPIO.HIGH)
time.sleep(1)
GPIO.output(4, GPIO.HIGH)
time.sleep(1)
GPIO.output(17, GPIO.LOW)
time.sleep(1)
GPIO.output(18, GPIO.LOW)
time.sleep(1)
GPIO.output(27, GPIO.LOW)
time.sleep(1)
GPIO.output(22, GPIO.LOW)
time.sleep(1)
GPIO.output(23, GPIO.LOW)
time.sleep(1)
GPIO.output(24, GPIO.LOW)
time.sleep(1)
GPIO.output(25, GPIO.LOW)
time.sleep(1)
GPIO.output(4, GPIO.LOW)
time.sleep(1)
elif n == 2:
GPIO.output(17, GPIO.HIGH)
GPIO.output(18, GPIO.HIGH)
GPIO.output(27, GPIO.HIGH)
GPIO.output(22, GPIO.HIGH)
GPIO.output(23, GPIO.HIGH)
GPIO.output(24, GPIO.HIGH)
GPIO.output(25, GPIO.HIGH)
GPIO.output(4, GPIO.HIGH)
print "Fények folyamatosan világitanak!"
sleep (30)
else :
print "Nem definiált szám"
GPIO.output(17, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
GPIO.output(27, GPIO.LOW)
GPIO.output(22, GPIO.LOW)
GPIO.output(23, GPIO.LOW)
GPIO.output(24, GPIO.LOW)
GPIO.output(25, GPIO.LOW)
GPIO.output(4, GPIO.LOW)
print "Ön kilépett..."
Előre is köszi minden kicsi segítségért.
Használj break-et a ciklusból való kilépésre.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!