Python - bucle infinito el cual salga si pulso la opción "s"

   
Vista:

bucle infinito el cual salga si pulso la opción "s"

Publicado por Ines (2 intervenciones) el 05/07/2017 19:07:25
Hola a todos.
Estoy iniciandome en la programación con Python y me he encontrado con un problemilla....
quiero hacer un bucle infinito el cual salga si pulso la opción "s" o si se activa el boton de la raspberry.
Esto es lo que he programado, pero no funciona correctamente, alguna idea?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import RPi.GPIO as gpio
 
gpio.setmode(gpio.BCM)
 
def prueba()
	boton=12
 
	gpio.setup(boton, gpio.IN, gpio.PUD_UP)
 
	salir='n'
 
	while True:
		print ("para salir puse s: ")
		salir=input()
 
		if salir =='s':
			return 0
			break
		if gpio.input(boton)==gpio.HIGH:
			return 1
			break
 
while True:
 
	if prueba() == 1
		print("Ha pulsado s")
	if prueba() == 0
		print("Ha pulsado boton")

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

bucle infinito el cual salga si pulso la opción "s"

Publicado por xve (1378 intervenciones) el 05/07/2017 19:38:14
Yo haria el segundo bucle así:
1
2
3
4
5
6
while True:
	resultado=prueba()
	if resultado == 1
		print("Ha pulsado s")
	if resultado == 0
		print("Ha pulsado boton")

Ya que de la otra manera, llamas a la función prueba() en cada if

Coméntanos,ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

bucle infinito el cual salga si pulso la opción "s"

Publicado por Ines (2 intervenciones) el 05/07/2017 20:08:27
Buena idea, pero el problema lo tengo en "def prueba()". Incluso después de pulsar "s" debo hacerlo de nuevo, si no no sale del bucle, es decir, me pide que introduzca 2 veces y si pulso el botón no sale del bucle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

bucle infinito el cual salga si pulso la opción "s"

Publicado por xve (1378 intervenciones) el 06/07/2017 07:51:20
Ines, he probado este código y funciona perfectamente!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#import RPi.GPIO as gpio
 
#gpio.setmode(gpio.BCM)
 
def prueba():
	boton=12
 
	#gpio.setup(boton, gpio.IN, gpio.PUD_UP)
 
	salir='n'
 
	while True:
		print ("para salir puse s: ")
		salir=input()
 
		if salir =='s':
			return 0
			break
		#if gpio.input(boton)==gpio.HIGH:
			#return 1
			#break
 
while True:
	resultado=prueba()
	if resultado == 0:
		print("Ha pulsado s")
	if resultado == 1:
		print("Ha pulsado boton")

NOTA: he comentado las lineas del gpio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar