Python
“Python is an interpreted, object-oriented, high-level programming language.” “Its high-level built-in data structures (…) make it very attractive for Rapid Application Development.” “Python’s simple, easy to learn syntax emphasizes readability.” “Python supports modules and packages, which encourages program modularity and code reuse”.
Python è un linguaggio Turing-complete. Che è un modo elegante di dire che ci si può eseguire qualsiasi computazione (algoritmo) ed è facilmente estensibile con dei package/moduli aggiuntivi che possono essere «importati». Esiste una grande quantità di moduli che coprono le più disparate funzionalità.
I linguaggi possono essere categorizzati in diverse maniere. Una delle tipologie principali è la differenza tra linguaggi compilati e linguaggi interpretati.
Per i linguaggi compilati la programmazione avviene in codice sorgente che viene poi compilato in codice macchina e successivamente il codice macchina viene eseguito dalla CPU. Per i linguaggi interpretati la programmazione avviene in codice sorgente e l’interprete converte le istruzioni in linguaggio macchina facendole eseguire alla CPU. Il primo tipo di linguaggio comporta una maggiore efficienza, mentre il secondo tipo uno sviluppo più veloce.
Python, a grandi linee, non effettua una vera compilazione per eseguire un programma: basta passare il sorgente all’interprete che lo esegue. È possibile interagire con l’interprete scrivendo python nella riga di comando, seguito da invio. L’avvio della modalità interattiva è segnalato da >>>.
print print “Hello World”
L’interprete reagisce al comando stampando il testo come richiesto. Finita l’esecuzione, restituisce il controllo all’utente (segnalato da >>>).
print è una funzione «built-in» di Python, il che significa che è supportata nativamente senza bisogno di moduli aggiuntivi. Supporta anche espressioni, ad es. possiamo far calcolare a Python il risultato di 2+2.
- La virgola separa le frasi tra virgolette (dette «stringhe») e l’espressione numerica.
Non è sempre necessario, quando si usa l’interprete, utilizzare la print: qualunque espressione viene valutata e il risultato stampato a video. Incluse le stringhe, che sono uguali a sé stesse. La print resta necessaria se si vuole combinare stringhe ed espressioni.
Messaggi di errore
Quando sbagliamo sintassi l’interprete ce lo fa notare. Ad es., python è case-sensitive, il che significa che le maiuscole e le minuscole devono essere scritte correttamente.
Quando l’errore non è un errore di sintassi l’errore viene rivelato durante l’esecuzione e non prima di cominciare, questo tipo di errore viene chiamato exception.
Python supporta sei operatori: addizione +, sottrazione -, moltiplicazione *, divisione /, resto della divisione (modulo) %, elevamento a potenza **.
1
In Python esistono due principali categorie di numeri: gli interi (int) e i numeri reali (i.e., floating point, float). I float richiedono l’uso del punto per separare i decimali.
Math
Python mette a disposizione un modulo aggiuntivo chiamato math che contiene una libreria di funzioni (e costanti numeriche) aggiuntive. Per utilizzare il modulo è necessario importarlo con il comando import. Funzioni e costanti possono essere utilizzati anteponendo il nome del modulo seguito dal punto, come nell’esempio.
>>> import math
>>> print “Pigreco =”, math.pi
Per sapere cosa mi mette a disposizione un modulo posso utilizzare il comando help(math).
Il comando help è «built-in» e invoca l’aiuto in linea di Python. Può essere utilizzato per qualsiasi modulo, funzione e parola chiave.
Possiamo elencare a video le funzioni che il modulo ci mette a disposizione tramite la funzione dir().
Variabili
Finora abbiamo utilizzato i dati in maniera diretta, mediante numeri (interi e floating point) e stringhe. A volte, però, sarebbe più comodo poter immagazzinare i dati in alcuni contenitori per poterli riutilizzare in seguito: questi contenitori prendono il nome di variabili. Nei linguaggi «tipizzati» bisogna sapere a priori che tipo di dato vogliamo immagazzinare, ma Python ha «tipizzazione dinamica» quindi non c'è bisogno. Inoltre, in Python non è necessario «dichiarare» le variabili, ovvero specificare all’inizio del programma quali variabili vogliamo usare: è automatico. Per creare una variabile basta assegnare un valore con l’operatore di assegnamento =.
Una volta creata una variabile è possibile usarla nei calcoli o aggiornarla tutte le volte che è necessario mediante l’operatore di assegnamento.
- Gli operatori matematici di base e l’assegnamento possono essere combinati, bisogna prestare attenzione a non utilizzare variabili che non siano state definite.
Scripting Python
Abbiamo usato l’interprete interattivo per provare i primi comandi ma, di norma, Python non viene utilizzato così. Quello che si fa è creare dei file che contengono i nostri algoritmi (i moduli, ad esempio, sono fatti così). Una volta creato uno script Python (mediante un qualunque editor testuale) lo salviamo con estensione .py e lo lanciamo passandolo all’eseguibile di python. Python è, tra le altre cose, un linguaggio imperativo: questo significa che le istruzioni nello script vengono eseguite in sequenza.
Input da tastiera
Talvolta l'algoritmo che intendiamo eseguire richiede l’inserimento di alcune informazioni da parte dell’utente. Python consente di leggere un input da tastiera mediante la funzione raw_input().
Il valore letto viene messo in una variabile mediante assegnamento. Facciamo un esempio: uno script che legge un nome da tastiera e ci accoglie.
print "Inserire il tuo nome:",
nome = raw_input() la virgola serve per non mandare a capo la print prima di raw_input()
print "Benvenuto", nome
2
La funzione raw_input() restituisce il valore letto come una stringa, non un numero, per operare la conversione del valore usiamo una funzione che ha lo stesso nome del tipo di dato in cui vogliamo convertire:
- int() converte in un numero intero.
- float() converte in un numero con la virgola.
- str() converte in una stringa.
Definire una nuova funzione
def nome_nuova_funzione( arg1, arg2, ... ):
# implementazione
Quando definiamo una nuova funzione dobbiamo dargli un nome. Il nome non deve essere una parola chiave (ad es., "float" o "import").
La funzione può avere degli argomenti, ovvero dei valori che le devono essere passati. Nel caso, gli argomenti (nell'esempio chiamati arg1, arg2, ecc.) sono elencati tra parentesi tonde e sono separati da virgole. Se la funzione non ha argomenti dobbiamo comunque usare le parentesi tonde (vuote).
Alla fine degli argomenti è obbligatorio inserire i due punti ":".
Il codice che implementa la funzione deve essere indentato ovvero tramite l’inserimento di una certa quantità di spazio vuoto (tasto TAB). L’indentazione serve per delimitare blocchi di codice e serve per capire dove finisce il corpo di una funzione.
Per restituire il risultato della funzione come output si deve inserire la parola chiave return.
def area(raggio):
A = raggio**2 * math.pi
return A
Inserire commenti
Quando scriviamo un codice è consigliabile commentarlo così che il suo funzionamento risulti maggiormente comprensibile.
Esistono due modi per inserire i commenti in Python.
- Il primo è il commento a linea singola. Si inserisce con il cancelletto "#" e dice all'interprete di ignorare il resto della riga dal cancelletto in poi.
- Il secondo modo per inserire commenti è quello multi-linea. Si inserisce con il triplo doppio apice """. Il triplo doppio apice inizia una regione di codice che viene ignorata dall'interprete, anche estesa su più righe. Per terminarla, bisogna nuovamente inserire il triplo doppio apice.
Espressioni booleane
Un’espressione booleana è un’espressione che può essere vera o falsa.
- Doppio uguale per confrontare due oggetti ==
- <, >, >=, <=
- Operatore diversità !=
Gli operatori booleani restituiscono valori di tipo True e False.
Operatori logici
Per costruire espressioni booleane complesse abbiamo bisogno di operatori in grado di lavorare su dati booleani. Questi operatori sono i tre "operatori logici": and, or, not.
3
>>> (1>2) and (2>1)
>>> (1>2) or (2>1)
>>> not (2>1)
False True False
Liste
Abbiamo visto che le variabili consentono di immagazzinare dei valori. Talvolta è comodo immagazzinare più valori in un unico "oggetto", piuttosto che avere tante variabili diverse: questo oggetto è una lista. Una lista è una successione ordinata di elementi identificati da un indice.
- Una stringa può essere vista come una lista di caratteri.
- Per definire una lista
-
Programmazione
-
Esercizi Informatica programmazione Python
-
Informatica + Programmazione Python
-
Programmazione Python: concetti essenziali