lunedì 2 dicembre 2013

Le procedure ricorsive in Python


Una procedura ricorsiva rappresenta una costruzione artificiosa che ci consente di utilizzare una funzione in se stessa. Vediamo allora come è possibile utilizzare una tale funzione in ambiente Python; per farlo analizzeremo dapprima un semplice esempio di funzione ricorsiva alfine di mettere in evidenza appunto il fatto che la funzione richiama se stessa:


def factorial( n ):
   if n <1:   # per valori minori di 1 ritorna 1
       return 1
   else:
       return n * factorial( n - 1 )  # chiamata alla funzione ricorsiva
 
Analizziamo allora nel dettaglio la funzione che presenta una struttura ramificata. La condizione n == 0 è la base della ricorsione. Questo è l’unico modo che si ha per ottenere che il programma smetta di chiamare se stesso.

Le procedure ricorsive in Python
                                                                                Le procedure ricorsive in Python

La parte contenuta nel costrutto else rappresenta la ricorsione. C'è da notare che la chiamata factorial(n-1) avviene all'interno della funzione che sta definendo factorial(n). La parte essenziale di tutto il procedimento di ricorsione è appunto la chiamata a un valore inferiore, n-1, e tale chiamata continuerà fino a quando non si verificherà un valore di n pari a 0.

Possiamo quindi affermare che una procedura di ricorsione che abbia successo chiamerà sempre un valore inferiore.Ci sono molti pericoli connessi all'utilizzo di un algoritmo di ricorsione. Ad esempio così come accade con i cicli while, è possibile per la funzione di chiamare se stessa all'infinito in modo da non fornire mai una risposta. Un'altro problema che può nascere dal suo utilizzo è legato al fatto che la ricorsione può causare calcoli ridondanti che, anche se possono essere conclusi, possono richiedere molto tempo. Infine  mentre un programma ricorsivo è in esecuzione ha bisogno di spazio in più per accogliere l’overhead della ricorsione.

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:

python

venerdì 29 novembre 2013

Come indentare codice Python

Come indentare codice Python
Come indentare codice Python


Il linguaggio di programmazione Python è caratterizzato dalla necessità di indentare il codice. Per indentazione s'intende il metodo che si utilizza per delimitare blocchi di programma. Infatti la struttura snella del linguaggio Python non prevede dei particolari delimitatori per i  blocchi di programma che vengono allora individuati attraverso la indentazione del codice.

Vediamo che cosa s'intende per indentazione del codice: rappresenta quella tecnica utilizzata nella programmazione attraverso la quale si evidenziano dei blocchi di programma con l'inserimento di una certa quantità di spazio vuoto all'inizio di una riga di testo allo scopo di aumentarne la leggibilità. Così  ogni riga viene indentata di un certo numero di spazi che dipende dalla sua posizione all'interno della struttura logica del programma.

python

Vediamo un esempio di indentazione:

def fact(n):
    if (n <= 1):
        return 1
    else:
        return n * fact(n - 1)

print(fact(6))

si tratta della famosa funzione che calcola il fattoriale di un numero attraverso procedura ricorsiva. In essa è possibile verificare che in corrispondenza di ogni nuova porzione del codice si è provevduto ad indentare il codice, che in questo modo individua univocamente il blocco di codice a cui fa riferimento.

 PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:

Risorse online:

giovedì 7 novembre 2013

Come impartire i comandi a Python

Come impartire i comandi a Python
Come impartire i comandi a Python
L'interprete Python può essere facilmente manipolato attraverso una finestra di terminale impartendo i comando utilizzando la riga di comando, vediamo allora quale sintassi dobbiamo seguire per dialogare in modo corretto con Python.


Per impartire i comandi all'interprete Python possiamo utilizzare il seguente formato:

python [option] [ nomefile | -c command | -m module | - ]  [arg]


dove:
  • option - rappresenta l'opzione che può essere passata all'interprete per eseguire una particolare azione;
  •  nomefile - rappresenta il nome dello script python che si vuole eseguire;
  •  -c command - specifica un comando Python da eseguire;
  •  -m module - lancia un modulo contenuto nella libreria a corredo dell'interprete: sarà allora ricercato il modulo nel sys.path, ed una volta individuato sarà lanciato come top-level file;
  • arg - indica che nient'altro sarà passato all'interprete python.

Allora se volete eseguire un programma che avete scritto con un editor di testo qualsiasi, non dovete fare altro che usare la sintassi seguente:

python nome programma 

In  questo modo l'interprete Python eseguirà il codice contenuto nel programma e fornirà i risultati attesi.

 LINK DI APPROFONDIMENTO PER L'ARGOMENTO:



python
Risorse online:

mercoledì 23 ottobre 2013

Come scrivere codice Python

Editor Pythonwin
Editor Pythonwin


Quando un programmatore scrive un semplice programma, lo fa  utilizzando il text editor blocco note di windows, questo perché per realizzare dei programmi i font, i colori e in generale l'aspetto grafico sono ininfluenti, anzi possono rendere il lavoro del programmatore più ostico. 

È questo il motivo per cui negli ambienti di sviluppo del software non vengono utilizzati programmi di videoscrittura complessi, programmi questi che invece vengono largamente impiegati dagli scrittori, ma piuttosto degli editor di testo semplici (come notepad o blocco note in ambiente windows oppure vi ed emacs in ambiente linux).

Tali editor al posto di complicate opzioni per la gestione visuale del testo forniscono funzioni avanzate di trattamento del puro testo, quali ad esempio veloci procedure di spostamento all’interno del testo, ricerche e sostituzioni di parole all’interno del file e di file esterni, riconoscimento di parole chiave del linguaggio di programmazione con la possibilità di evidenziare le stesse colorandole in modo diverso dal resto del testo, ed infine la identazione del testo che in Python rappresenta una scelta obbligata. 

Utilizzare un IDE (Integrated Development Environment) come ambiente di sviluppo non risulta indispensabile per una corretta programmazione. Tuttavia l'utilizzo di un buon ambiente di sviluppo integrato ci può fornire un aiuto davvero prezioso nello sviluppo di un applicazione facendoci risparmiare tempo e aiutandoci nella gestione di progetti complessi.

Come semplice esempio di IDE prpongo l'editor Pythonwin che rappresenta la versione Windows di Scintilla. Scintilla offre tutto ciò che ci si aspetta da un editor di Python, come un sistema di identazione intelligente, code-folding (che permette di nascondere delle porzioni di un file di codice mentre si lavora ad altre parti dello stesso file), e l'evidenziazione della sintassi.



Pythonwin rappresenta una risorsa open source, scritto da Mark Hammond, e ora parte del pacchetto ActiveState Active Python, anche se può essere scaricato separatamente. 

Cosicchè Active Python nasce dal'accorpamento di una IDE completa, di un interprete Python e di una piccola selezione di librerie standard, cosa questa che sembra essere una tendenza nel mondo Windows.



python
Risorse online:

python