code{ -webkit-background-clip:initial; -webkit-background-origin:initial; background-attachment:initial; background-color:#FFF; background-image:url(http://arquivos.noticiaeblog.com/code.jpg); background-position:0 0; background-repeat:no-repeat; color:#666; display:block; font-size:13px; font:normal normal normal 1em/normal 'Courier New', Fixed, monospace; line-height:17px; overflow-x:auto; overflow-y:auto; text-align:left; border-color:#9c6; border-style:solid; border-width:1px; margin:1em 0; padding:0 20px 0 30px; }

segunda-feira, 30 de julho de 2012

Executar string com Python

Esses dias me deparei com um problema em Python, queria executar uma string. Eu tinha uma string que era um teste de condicionais e uma lista que seria os nomes das variáveis que estavam sendo usadas nas condicionais. Para executar os testes de condicionais que estavam como string, utilizei o comando eval() e para declarar as novas variáveis que iriam receber um array, usei o exec().

Por exemplo:
>>> import numpy as np
>>> d = "f"     #Criei uma variavel que recebe a string
>>> array = np.array([1, 2, 3, 4])    #criei o array do numpy
>>> condicionais = "np.where( a == 1, 10, np.where (a >= 1, 20, 30))"    #O teste condicionais em string
>>> exec (d+"=array")  #O comando exec vai fazer com que a variável  f receba o array
>>> print f      #Então quando mandar escrever a variável f aparecerá os valores do array
array([1, 2, 3, 4])
>>> eval(condicionais)   #Para que as condicionais seja executada utilizá-se o eval, esse comando avaliará a string
array([10, 20, 20, 20])  #Resultado das condicionais

Bom trabalho!

Nenhum comentário:

Postar um comentário