es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El nombre no está definido al usar eval().

Actualmente estoy haciendo un miniscript que envía documentos a una ruta específica basada en un código que ingreso.

El código es básico, pero obtengo un error que realmente no entiendo.

Cuando ejecuto el siguiente código:

en = "Inglés"
source = eval(input("¿Idioma de origen?\n"))
print(source)

Si ingreso ‘en’, obtengo “Inglés” sin errores.

Pero si ejecuto lo mismo sin entrada:

en = "Inglés"
eval(en)

Obtengo “name ‘Inglés’ is not defined”.

Básicamente, quiero usar algunas funciones de eval() en mi código sin la función input(). ¿Dónde me equivoco?

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema con el segundo código es que cuando usas eval() en una cadena, intentará evaluarla como una expresión de Python. En este caso, está intentando encontrar una variable llamada English, que aún no ha sido definida.

    Para usar eval() sin la función input(), necesitarías proporcionar una cadena que sea una expresión de Python válida. Por ejemplo:

    en = "English"
    eval("en")
    

    Esto mostraría "English" sin errores.

    Sin embargo, usar eval() puede ser riesgoso porque puede ejecutar código arbitrario. Es mejor utilizar métodos más seguros para lograr el resultado deseado, como usar un diccionario para mapear código a rutas específicas.

Comments are closed.