Cadena y Calculo
Chema Cortes
py en ch3m4.org
Dom Jun 14 22:25:53 CEST 2009
El Sunday 14 June 2009 22:28:21 Fundichely escribió:
> Hermanos de la lista:
> Quisiera saber si existe alguna forma que introduciendo una cadena,
> a = '1 + 2'
> se pueda realizar el calculo de la ecuación , llevando al resultado 1+2=3
En la FAQ de la lista (la dirección está al final de todos los mensajes)
tienes el modo "correcto" de hacerlo:
<http://python-es-faq.wikidot.com/#toc23>
Te lo pongo a continuación por si no tienes acceso:
"""
¿Cómo hago una calculadora?
Python en sí es una buenísima calculadora:
>>> import math
>>> eval("4.0*sqrt(4)", vars(math), {}) # 8.0
Ver detalles de eval en la documentación, es una función peligrosa en
cuestiones de seguridad.
Sobra decirlo: si la calculadora a desarrollar es un trabajo académico, a tu
profesor no le va hacer a gustar la función eval tanto como a tí ;-)
"""
Reincido en lo de que eval es una función muy "peligrosa". Si la cadena a
evaluar no la controlas (por ejemplo, si proviene de una entrada de usuario)
entonces hay que limitar mucho lo que se puede evaluar ahí. Un método seguro
sería:
>>> g={"__builtins__":{}}
>>> eval("1250/25*4.2",g)
La explicación está en el hilo:
<http://listas.aditel.org/archivos/python-es/2006-April/012188.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.python.org/pipermail/python-es/attachments/20090614/371d59fc/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es