Python - Error list assignment index out of range

 
Vista:
sin imagen de perfil

Error list assignment index out of range

Publicado por Gustavo (5 intervenciones) el 23/09/2021 09:00:58
Hola, estoy tratando de hacer un codigo en python para añadir valores a una pila, pero estoy teniendo el problema "list assignment index out of range", la maestra nos solicito que no usemos el .append, estoy tratando de usar el algoritmo que nos dió pero no he tenido exito, si me podrian ayudar lo agradeceria mucho.
Dejo una imagen del algoritmo para añadir a la pila.

El codigo es el siguiente:

import os

pila=[]
cima=-1

while True:
print("Menu")
print("Seleccione una opcion:")
print("1. Introducir datos:")
print("2. Eliminar datos:")
print("3. Mostrar pila:")
print("4. Terminar.")
opcion=input()

if opcion=="1":
if cima<5:
pila[cima+1] = int(input('Escriba el dato a introducir en la pila:'))
cima+=1
else:
print("Error OverFlow: La pila esta llena:")

elif opcion=="2":

if cima>0:
print("El dato se elimino correctamente:")
print(pila.pop())
cima-=1
else:
print("Error de UnderFlow: Pila esta vacia, por favor introduce un dato")

elif opcion=="3":
if cima!=-1:
print(pila)
else:
print("La pila esta vacia")

elif opcion=="4":
break
else:
print("Opcion invalida, intentelo de nuevo")

os.system("pause")
os.system("cls")

imagen_2021-09-23_015923
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
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Error list assignment index out of range

Publicado por tincopasan (937 intervenciones) el 23/09/2021 09:46:20
me causan gracia los planteos rídiculos,¿acaso las funciones fueron hechas para no usarlas? es como escribir con tinta y pluma por no querer usar una lapicera, o un cincel y piedra por no usar un PC, eso no mejora la lógica de programación, en fin.
Hay varios errores en ese código pero sobre lo que preguntas, el principal problema está en la forma de asignar el valor mediante el índice, deberías probar así:
1
2
3
4
if opcion=="1":
        if cima<5:
            pila += [int(input('Escriba el dato a introducir en la pila:'))]
            cima+=1
entre otras formas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Error list assignment index out of range

Publicado por Gustavo (5 intervenciones) el 23/09/2021 20:06:48
Muchisimas gracias, si ya me funcionó bien, yo tampoco entiendo porque la profesora no quiere que usemos las funciones pero bueno, un saludo.
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