Python eval()

La funzione eval() esegue il codice Python (che viene passato come argomento) all'interno del programma.

La sintassi di eval() è:

eval(espressione, globals=None, locals=None)

La funzione eval() prende tre parametri:

  • espressione: la stringa analizzata e valutata come espressione Python.
  • globals (opzionale): un dizionario.
  • locals (opzionale): un oggetto di mappatura. Il dizionario è il tipo di mappatura standard e comunemente usato in Python.

Il metodo eval() restituisce il risultato valutato dall'espressione.

a = 10
print(eval('a + 10'))

Output del codice

20

Altro esempio per eval():

#calcoliamo perimetro ed area del quadrato
def calcola_perimetro(l):
   return 4*l

def calcola_area(l):
   return l*l

espressione = input("Scrivi la funzione: ")

for l in range(1, 5):
   if (espressione == 'calcola_perimetro(l)'):
       print("Se il lato è ", l, ", Perimetro = ", eval(espressione))
   elif (espressione == 'calcola_area(l)'):
       print("Se il lato è ", l, ", Area = ", eval(espressione))
   else:
       print('Nome funzione errato')
       break

Output del codice

Scrivi la funzione: calcola_perimetro(l)
Se il lato è  1 , Perimetro =  4
Se il lato è  2 , Perimetro =  8
Se il lato è  3 , Perimetro =  12
Se il lato è  4 , Perimetro =  16