Python - IndexError: pop from empty list

 
Vista:
sin imagen de perfil

IndexError: pop from empty list

Publicado por José (3 intervenciones) el 01/11/2016 18:06:04
Saludos, por favor necesito que me ayuden a resolver este algoritmo. En la función "atender" me aparece un error, indicando que la lista está vacía. Sé que es porque he utilizado el pop() dos veces, porque hice dos "if", uno que indique si el número es par o impar y el otro que indique si es positivo o negativo. Lo que quiero que aparezca es, por ejemplo: "Es Par y Positivo" ó "Es Impar y negativo", dependiendo del número que ingrese, obviamente. Gracias de antemano

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
def leerS(texto):
	varS=input(texto)
	return varS
 
def leerI(texto):
	varI=int(input(texto))
	return varI
 
def cargarcola(cola):
	n=leerS("Nombre:")
	cola.append(n)
	return cola
 
def cargarpila(pila):
	x=leerI("Número:")
	pila.append(x)
	return pila
 
def imprimircola(cola):
	print(cola)
 
def imprimirpila(pila):
	for i in range(1,len(pila)+1):
		print(pila[-i])
 
def atender(cola,pila):
	#Indicando si es par ó impar
	print("Atentiendo a:",cola.pop(0))
	if(pila.pop()%2==0):
		print("Es Par")
	else:
		print("Es Impar")
	#Indicando si es positivo ó negativo
	if(pila.pop()>0):
		print("Es Positivor")
	else:
		print("Es Negativo")
 
 
def menu():
	print("1.-Cargar Cola")
	print("2.-Cargar Pila")
	print("3.-Imprimir Cola")
	print("4.-Imprimir Pila")
	print("5.-Atender")
	print("0.-Salir")
	o=leerI("Elija una opción:")
	return o
 
#Principal
C=[]
P=[]
opcion=10
 
while(opcion!=0):
	opcion=menu()
	if(opcion==1):
		cargarcola(C)
	if(opcion==2):
		cargarpila(P)
	if(opcion==3):
		imprimircola(C)
	if(opcion==4):
		imprimirpila(P)
	if(opcion==5):
		atender(C,P)
	if(opcion==0):
		print("Adiós")
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