2015-03-16 16 views
5

Il codice che ho già è per un bot che riceve un'espressione matematica e lo calcola. In questo momento lo faccio moltiplicare, dividere, sottrarre e aggiungere. Il problema però è che voglio creare il supporto per parentesi e parentesi tra parentesi. Affinché ciò accada, devo prima eseguire il codice che ho scritto per le espressioni senza parentesi per l'espressione all'interno delle parentesi. Stavo per controllare "(" e aggiungere l'espressione al suo interno a un elenco finché non raggiunge un ")" a meno che non raggiunga un altro "(" prima nel qual caso creerei un elenco all'interno di un elenco. Vorrei sottrarre, moltiplicare e dividere e poi i numeri che sono rimasti che ho appena aggiunto.python - chiamata da parte di una funzione

Quindi è possibile chiamare una definizione/funzione da dentro di sé?

risposta

8

Sì, questa è una tecnica di programmazione fondamentale chiamato recursion, ed è spesso usato in esattamente il tipo di scenari di analisi che descrivi.

Basta essere sicuri di avere un caso base, in modo che la ricorsione termina quando si raggiunge lo strato inferiore e non si finisce per chiamare te stesso all'infinito.

(Da notare anche l'uovo di Pasqua quando Google ricorsione: "Forse cercavi ricorsione?")

+0

alcuni esempi http://stackoverflow.com/questions/479343/how-can-i-build-a-recursive-function-in -pitone –

1

Sì, come ha detto @ Daniel Roseman si tratta di una tecnica di programmazione fondamentale chiamato ricorsione.

im dando un esempio di campione di essa in python

def recur_factorial(n): 
    """Function to return the factorial of a number using recursion""" 
    if n == 1: 
     return n 
    else: 
     return n*recur_factorial(n-1) 
Problemi correlati