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
dc16
3,439 Puntos¿Por qué new_item == 'SHOW' que no es un operador de asignación sin "continue" termina en la lista de compras?
¿Alguien puede ayudarme por favor?
1 Respuesta
Louise St. Germain
19,425 Puntos¡Hola!
¡Buena pregunta! De hecho, el operador de comparación no actúa como un operador de asignación sin continue. Sigue siendo una comparación. Lo que está sucediendo es esto. Si olvidas "continue", el código se ve así:
# etc... algo de código antes de esto
while Verdadero:
new_item = input(> )
if new_item == DONE:
break
elif new_item == HELP:
show_help()
continue
elif new_item == SHOW:
show_list()
add_to_list(new_item)
# etc... más código después de esto
Al ejecutar el programa, si escribes "SHOW", ese es el valor de new_item. Python está pasando por el bucle while. Obtiene una coincidencia exitosa en la línea elif new_item == "SHOW": así que comienza a ejecutar el código dentro, que es el show_list() comando. Hasta aquí, todo bien.
¡Pero sin un comando continue, que lo fuerza de vuelta al principio del bucle while, simplemente continúa! Así que termina ejecutando ese add_to_list(new_item) comando debajo de él, que no es lo que pretendías. new_item contiene "SHOW", así que add_to_list("SHOW"), y así es como "SHOW" terminaría en la lista de compras.
Para evitar esto, necesitarías tener un continue después del elemento show_list(), así:
# etc... algo de código antes de esto
while Verdadero:
new_item = input(> )
if new_item == DONE:
break
elif new_item == HELP:
show_help()
continue
elif new_item == SHOW:
show_list()
# Agrega continue aquí... para que luego vuelva al principio del bucle while de nuevo.
continue
add_to_list(new_item)
# etc... más código después de esto
De esa manera no ejecutará el comando add_to_list si new_item es "SHOW".
¡Espero que esto ayude! Avísame si aún tienes alguna pregunta.
dc16
3,439 Puntosdc16
3,439 PuntosAh, ya veo... ¡Muchas gracias! Ahora lo entiendo
Jamar Slade
2,480 PuntosJamar Slade
2,480 PuntosHola Louis,
Parece que sigo obteniendo "SHOW" en mi lista incluso cuando agrego continue, ver a continuación: