Python
“Python is an interpreted, object-oriented, highlevel 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 successivamnete il codice macchina viene eseguito dalla CPU. Per i linguaggi
interpretati la programmazione avviene in codice sorgente e l’interprete convertte le istruzioni in
linguaggio macchina facendole eseguitre alla CPU. Il primo tipo di linguaggio comporta una
maggiore efficrnza, 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 E’ 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”
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 files 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 medianta 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 list
-
Programmazione
-
Esercizi Informatica programmazione Python
-
Informatica + Programmazione Python
-
Programmazione Python: concetti essenziali