Bienvenido a la Comunidad de Treehouse
¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.
¿Buscas aprender algo nuevo?
Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de
Inicia tu prueba gratuita
ARUN DAMODARAN
733 PuntosShopping_List.py
Me gustaría mejorar este código un poco agregando una nueva función llamada remove_list() al código existente. El objetivo es pedirle al usuario que proporcione una entrada para eliminar elementos de la lista agregada.
A continuación se muestra cómo escribí el código y la operación DEL funciona, pero el problema es que cuando el usuario ingresa la palabra clave "DEL", se agrega a la lista existente, lo que no debería ser así ya que "DEL" se supone que funciona como un comando para realizar la operación.
¿Puede alguien aconsejarme qué estoy haciendo mal:
shopping_list = []
def show_help():
def add_to_list(item):
def remove_list(item):
def show_list():
show_help()
if new_item == "DONE":
break
elif new_item =="HELP":
show_help()
continue
elif new_item == "SHOW":
show_list()
continue
add_to_list(new_item)
if new_item == 'DEL':
rem_item = input("Ingresa el elemento que deseas eliminar:")
remove_list(rem_item)
show_list()
2 Respuestas
Josh Keenan
20,320 PuntosPorque tienes un if separado, necesitas agregarlo como elif a las otras cláusulas anteriores; actualmente tu código hace esto:
# evalúa estos y si una de estas tres opciones, haz lo necesario
if new_item == DONE:
break
elif new_item ==HELP:
show_help()
continue
elif new_item == SHOW:
show_list()
continue
# AQUÍ AGREGAS LO QUE SEA A LA LISTA
add_to_list(new_item)
# y después verificas si debe ser eliminado o no
# ¡así que mueve esto por encima del segmento anterior!
if new_item == 'DEL':
rem_item = input(Ingresa el elemento que deseas eliminar:)
remove_list(rem_item)
¡Espero que esto te ayude!
ARUN DAMODARAN
733 PuntosHola Josh,
A continuación se muestra lo que hice y funcionó para mí.
elif new_item == "DEL":
Josh Keenan
20,320 Puntos¡Me alegra que hayas logrado resolverlo! ¡Tú puedes!
Adam Bonny
2,860 PuntosAdam Bonny
2,860 PuntosPara resolver el problema de que 'DEL' se agregue a la lista, debes agregar 'continue' justo después de remove_item(rem_item).
Un par de otros cambios que sugeriría serían los siguientes:
Cambiaría la entrada a un número entero con int() y luego restaría uno ya que Python usa un índice basado en 0, así que si el usuario desea eliminar lo que cree que es el elemento 1, necesitas restar 1 para eliminar realmente el elemento correcto.
¡Espero que ayude :)