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

Python Conceptos Básicos de Python Funciones e Iteración Flujo de Excepciones

Daron Anderson
Daron Anderson
2.567 Puntos

¿Puede alguien ayudarme a entender?

¿Cuál es la explicación de por qué cuando result = "test" + 5 ,
Se imprime ADF que es una cadena más un entero

y cuando result = 5 + 5 , que es un entero más entero

Daron Anderson
Daron Anderson
2.567 Puntos

También he estado intentando entender el orden de las operaciones.

1 Respuesta

Chris Freeman
Chris Freeman
68,469 puntos

En el primer caso, es dado que "A" y "F" se imprimirán primero y último, la pregunta es qué otros comandos de impresión se ejecutarán. En la ejecución de try, la primera declaración result = "test" + 5, lanzará una TypeError porque el signo más siguiente a una cadena busca concatenar otras cadenas. Cuando se analiza el 5, no es del tipo str por lo que no se puede concatenar. Cuando se TypeError lanza, la print("B") declaración se omite. La ejecución salta al except TypeError bloque, por lo que la siguiente impresión sería print("D"). Ya que el try bloque lanzó un error, el else bloque también se omite. Entonces es "A", "D", "F"

En el segundo caso, "A" y "F" también se imprimirán primero y último. Ahora el signo más sigue a un int por lo que espera una adición. Como el segundo 5 se puede sumar al primer 5, la ejecución se moverá a la print("B") declaración. Esto completa el try bloque y la ejecución se mueve al else bloque donde se ejecuta la print("E") declaración. Entonces "A", "B", "E", "F"

Vuelve a publicar si tienes más preguntas. ¡Buena suerte!

Daron Anderson
Daron Anderson
2.567 Puntos

Fantástico, te agradezco por aclarar. :)