elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Hacer una operacion que esta en una string.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Hacer una operacion que esta en una string.  (Leído 1,740 veces)
aalleexx

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Hacer una operacion que esta en una string.
« en: 13 Diciembre 2015, 21:32 pm »

Hola, mi pregunta es como puedo hacer la operación que esta almacenada en una variable que es de tipo string, por ejemplo, si la variable "multi" tiene como valor 10*3 es decir que si hacemos
Código:
print multi
nos sale 10*3
El 10*3 sale de un fichero de texto llamado datos.txt que seria algo asi:
Código:
10*3
2*9
6*3
12*10

y el codigo (sin acabar del .py) seria:
Código:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#juego.py
import math
import os.path
import linecache


if os.path.exists('datos.txt'):
adelante = 1
else:
adelante = 0
print "No existe datos.txt."
exit()

if adelante == 1:
el = 1
intentos = int(raw_input('Intentos: '))
tlineas = len(open('datos.txt').readlines())
linea = linecache.getline('datos.txt', el)
multi = str(linea)
print type(multi)
user = int(raw_input('cuanto da?: '))
#multi es elresultado de la operacion, puede ser asignada otra variable
if user == multi:
print "Acierto"
else:
print "Error"
intentos += 1
lo que necesitoes que me haga la multiplicacion de la string.

MIL GRACIAS :laugh: :laugh:


« Última modificación: 13 Diciembre 2015, 21:37 pm por aalleexx » En línea

madoko

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: Hacer una operacion que esta en una string.
« Respuesta #1 en: 13 Diciembre 2015, 22:12 pm »

puedes hacer un linea.split("*")  para que te parta la linea en 10 y en 3, ya solo convertir a float o int y multiplicar

o puedes usar import re y mediante un findall, si ya habeis dado las expresiones regulares


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.807



Ver Perfil
Re: Hacer una operacion que esta en una string.
« Respuesta #2 en: 29 Diciembre 2015, 16:46 pm »

Para evaluar expresiones aritméticas también puedes optar por utilizar la librería numexpr.

un ejemplo:
Código
  1. >>> import numpy as np
  2. >>> import numexpr as ne
  3.  
  4. >>> a = np.arange(1e6)
  5. >>> b = np.arange(1e6)
  6.  
  7. >>> ne.evaluate("a + 1")   # a simple expression
  8. array([  1.00000000e+00,   2.00000000e+00,   3.00000000e+00, ...,
  9.         9.99998000e+05,   9.99999000e+05,   1.00000000e+06])
  10.  
  11. >>> ne.evaluate('a*b-4.1*a > 2.5*b')   # a more complex one
  12. array([False, False, False, ...,  True,  True,  True], dtype=bool)

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines