Il linguaggio di programmazione Python

Il linguaggio Python è sviluppato all’inizio degli Anni Novanta da Guido van Rossum. L’intento era quello di progettare un linguaggio che consentisse di operare agevolmente con dati complessi e articolati:

Dinamicità

Semplicità

Flessibilità

Il quale supporta diversi paradigmi di programmazione:

Imperativo

Funzionale

Orientato agli oggetti

• Offre un controllo dei tipi di dati

Forte (strong typing): Ogni elemento sintattico che denota un valore è associato ad un determinato tipo durante l’esecuzione. Il linguaggio garantisce che il valore sia utilizzato in modo coerente con il tipo specificato: per esempio, non è possibile eseguire una somma aritmetica su dati di tipo stringa.

– Eseguito a run-time (dynamic typing): il controllo del tipo della variabile è effettuato a runtime (durante l’esecuzione), non durante la fase di compilazione del programma (static typing).

Static typing: tutti i controlli sull’uso corretto dei valori rispetto al loro tipo vengono eseguiti durante la compilazione.

Offre una gestione automatica della memoria:

Garbage collector: modalità automatica di gestione della memoria, mediante la quale un sistema operativo, o un compilatore, e un modulo di run-time liberano porzioni di memoria non più utilizzate dalle applicazioni.

• Offre costrutti robusti per la gestione delle eccezioni

– come mezzo per segnalare e controllare eventuali condizioni di errore (incluse le eccezioni generate dagli errori di sintassi).

E’ un linguaggio interpretato (o meglio pseudo-compilato):
– un interprete si occupa di analizzare il codice sorgente (semplici file testuali con
estensione .py) e, se sintatticamente corretto, di eseguirlo.
– il codice sorgente passa prima da una fase di pre-compilazione in bytecode (riduce
la dipendenza dall’hardware).
• viene riutilizzato dopo la prima esecuzione del programma, evitando così di dover ogni volta interpretare il sorgente ed incrementando di conseguenza le prestazioni.
– non esiste una fase di compilazione separata che generi un file eseguibile partendo
dal sorgente.
• il codice sorgente non viene convertito direttamente in linguaggio macchina, ma il bytecode prodotto viene eseguito da una macchina virtuale Python (PVM)
– Portabilità.
– Indipendenza dalla piattaforma

Esecuzione di script .py


Per prima cosa bisogna generare un semplice file di testo e salvarlo con estensione .py, per esempio, helloworld.py.
A questo punto possiamo aprire il file creato con un qualsiasi editor di testi e scrivere:
print (‘nome’)
La funzione print() come risultato stamperà una stringa.
• In ogni istallazione di Python è disponibile anche un interprete interattivo in grado
di leggere e valutare man mano le espressioni inserite dall’utente.

Ambiente di sviluppo Python


• Integrato
– IDLE
• Editor di testo
• Finestra di terminale
• Modalità
– Scripting.

La sintassi e la semantica di tale linguaggio:
Sintassi: insieme di regole che indicano come le istruzioni devono essere scritte dal programmatore, ovvero quali sono le istruzioni corrette o valide del linguaggio ›
Semantica: insieme di regole che definiscono il significato delle istruzioni valide,
ovvero come tali istruzioni devono essere eseguite dal calcolatore La sintassi verrà
descritta usando:
› il colore nero per le parti da scrivere in modo testuale
› il colore rosso per indicare le parti da sostituire come spiegato caso per caso.
Sintassi: variabile = espressione
› non devono esserci spazi prima del nome della variabile
› variabile deve essere un nome simbolico scelto dal programmatore (con le
limitazioni descritte più avanti)
› espressione indica il valore (per es., un numero) che si vuole associare alla variabile
Esempio:
x = -3.2
y = x + 1
Limitazioni sui nomi delle variabili:
› possono essere composti da uno o più dei seguenti caratteri: – lettere minuscole e
maiuscole – cifre – il carattere _ (underscore) esempi: x, somma
› non devono iniziare con una cifra; esempio: 12abc non è un nome ammesso
› non devono coincidere con i nomi predefiniti delle istruzioni e di altri elementi del
linguaggio, come per esempio: input, print, if, while
L’istruzione di assegnazione viene eseguita in due fasi:

  1. l’interprete valuta espressione, cioè ne determina il valore
  2. il valore di espressione viene assegnato (o associato) a variabile
    Dopo l’assegnamento, il nome della variabile potrà essere usato in espressioni
    all’interno di altre istruzioni: nella valutazione di tali espressioni l’interprete
    sostituirà al nome della variabile il valore a essa associato.

L’effetto concreto di un’istruzione di assegnamento é la memorizzazione del valore di espressione all’interno di una o più celle di memoria. Se un’istruzione di assegnamento si riferisce a una variabile alla quale in precedenza era già stato assegnato un valore, il nuovo valore sostituisce quello precedente.
I principali tipi di valori che possono essere rappresentati ed elaborati dai
programmi Python, sono:
› numeri interi
› numeri frazionari
› sequenze di caratteri
Le espressioni Python che producono valori appartenenti a tali tipi di dati, e che possono contenere opportuni operatori, sono le seguenti:
› espressioni aritmetiche
› stringhe (sequenze di caratteri)
La più semplice espressione aritmetica è un singolo numero.
I numeri vengono rappresentati nelle istruzioni Python con diverse notazioni, simili a
quelle matematiche, espressi in base dieci.
Python distingue tra due tipi di dati numerici:
› numeri interi (int), codificati nei calcolatori in complemento a due; esempi: 12, -9
› numeri frazionari (float), codificati in virgola mobile (floating point)
Gli operatori disponibili nel linguaggio Python sono i seguenti:

  • somma
  • sottrazione
  • moltiplicazione
    / divisione
    // divisione intera
    % modulo (resto di una divisione)
    ** elevamento a potenza
    E’ anche possibile scrivere enunciati che effettuano una assegnazione e svolgono
    allo stesso tempo un calcolo.

Esempio:
i -= 1 # è equivalente a i = i – 1
Funzioni matematiche predefinite

FunzioneRestituisce
abs(x)valore assoluto di x
round(x)valore di x arrotondato all’intero più
vicino ad x
round(x,n)valore di x arrotondato ad n cifre
decimali
min(x1,..,xn)valore minore fra quelli presenti come
argomenti
max(x1,..,xn)valore maggiore fra quelli presenti
come argomenti

Il carattere di escape è \ e, insieme al carattere che lo segue, assume un significato
particolare (sequenza di escape).
Esempi di sequenze di escape
\ Backslash ()
\’ Carattere di quotatura singola (‘)
\” Carattere di quotatura doppia (“)
\n ASCII Linefeed (LF) – sposta il cursore all’inizio della linea successiva
\t ASCII Tab orizzontale (TAB)
\f ASCII Formfeed (FF) – interruzione di pagina
• La funzione len restituisce un intero pari alla lunghezza della stringa in input
• Il metodo upper() (risp. lower()) invocato su una stringa s restituisce una stringa
ottenuta da s trasformando le lettere minuscole in maiuscole (risp. maiuscole in
minuscole)

L’espressione input
Questa espressione può essere scritta in due forme.
Il suo uso all’interno di un’istruzione di assegnamento è il seguente.

Sintassi e semantica


› variabile = input()
l’interprete resta in attesa che l’utente inserisca nella shell, attraverso la tastiera, una sequenza di caratteri che dovrà essere conclusa dal carattere RETURN; successivamente si assegna a variabile la sequenza di caratteri inserita, interpretandola come stringa.
› variabile = input(messaggio)
l’interprete stampa messaggio, che deve essere una stringa, nella shell, poi procede come indicato sopra.

Nella shell è anche possibile scrivere una qualsiasi espressione invece che un’istruzione: in questo caso l’interprete valuterà l’espressione e ne mostrerà il valore, sempre nella shell. Questo consente, per esempio, di usare la shell di Python come una calcolatrice, e di visualizzare il valore associato a una variabile. Come nel caso delle istruzioni, anche le espressioni non devono essere precedute da spazi.

L’istruzione print


L’istruzione print consente di mostrare nella finestra della shell il valore di una qualsiasi espressione Python. Essa costituisce un semplice meccanismo attraverso il quale i risultati delle elaborazioni svolte da un programma possono essere comunicati agli utenti del calcolatore.


Sintassi: print (espressione ) › non devono esserci spazi prima del simbolo print ›
espressione deve essere una qualsiasi espressione valida del linguaggio Python
Semantica: viene mostrato nella shell il valore di espressione.
È anche possibile mostrare con una sola istruzione print i valori di un numero
qualsiasi di espressioni, con la seguente sintassi:
print (espressione1, espressione 2,. . . )
In questo caso i valori delle espressioni vengono mostrati su una stessa riga, separati da un carattere di spaziatura.

Esecuzione di programmi


Un programma Python è costituito da una sequenza di istruzioni che devono essere scritte attraverso un editor di testi e memorizzate in un file di testo. Il programma potrà successivamente essere eseguito all’interno di un ambiente di programmazione come IDLE, oppure in una finestra dei comandi del sistema operativo (purché sia stato installato e configurato un interprete Python).
I nomi dei file che contengono programmi Python devono avere estensione .py (per esempio, prova.py). Come ogni ambiente di programmazione, IDLE comprende un editor di testi che facilita la scrittura di programmi, per esempio evidenziando con colori diversi le diverse componenti sintattiche (nomi delle istruzioni, numeri, stringhe, ecc.).


1) Per aprire una nuova finestra dell’editor di IDLE, scegliere la voce New File del
menu File della shell.
2) Ogni istruzione di un programma deve essere scritta in una riga distinta, e senza spazi all’inizio (con l’eccezione delle istruzioni if-else, while efor, descritte più avanti). Si noti che le istruzioni scritte nell’editor non vengono immediatamente eseguite, come avviene invece per quelle scritte nella shell.
3) Dopo aver memorizzato il programma in un file (il cui nome abbia estensione .py), esso potrà essere eseguito scegliendo la voce Run module del menu Run nella finestra dell’editor, oppure premendo il tasto F5 quando la finestra dell’editor è attiva.
4) L’esecuzione di un programma comporta il riavvio (restart ) della shell, che ha come conseguenza l’eliminazione delle eventuali variabili definite in precedenza.
ESEMPIO
Un programma che acquisisce attraverso la tastiera il valore del raggio di un cerchio,
e ne calcola la circonferenza.
File: circonferenza.py
raggio = float(input(“Inserire il valore del raggio: “))
circonferenza = 2 * 3.14 * raggio
print (“La lunghezza della circonferenza è”,circonferenza)


Istruzioni condizionali


Nella formulazione di un algoritmo si ha spesso la necessità di esprimere la scelta tra due o più sequenze di istruzioni, in base al verificarsi o meno di una certa condizione durante l’esecuzione dello stesso algoritmo.
Esempio

Nel calcolo del valore assoluto di un numero, il risultato dipenderà dal segno di tale
numero.
In tutti i linguaggi di alto livello sono disponibili per questo scopo:
• le espressioni condizionali (anche dette espressioni booleane), che consentono di
esprimere condizioni che possono essere vere o false
• l’istruzione condizionale, che consente di eseguire due diverse sequenze
d’istruzioni alternative tra loro, in base al valore di un’espressione condizionale
Il tipo più semplice di espressione condizionale consiste nel confronto tra due
espressioni.

SimboloSignificato
==“uguale a”
!=“diverso da”
<“minore di”
<=“minore o uguale a”
>“maggiore di”
>=“maggiore o uguale a”

ESEMPI
Si assume che a ciascuna variabile che compare negli esempi seguenti sia già stato assegnato un valore.
1 < 2
a + 1 != 5
x >= y
Analogamente alle espressioni aritmetiche, il cui valore è un numero, e alle espressioni che coinvolgono stringhe, il cui valore è una stringa, un’espressione condizionale assume il valore logico “vero” oppure “falso”, in base all’esito del confronto.
I due valori logici vengono indicati in Python con i simboli:
› True(vero)
› False(falso)
Si noti che questi simboli sono essi stessi espressioni lecite del linguaggio Python, proprio come i numeri e le stringhe. In particolare, nel caso di un confronto tra due valori di tipo stringa, gli operatori <=, >= e > si riferiscono all’ordinamento lessicografico.
Le espressioni condizionali possono essere usate all’interno di un programma Python come tutte le altre espressioni (numeri e stringhe):
• il loro valore può essere assegnato a una variabile; per esempio, assumendo che
alla variabile x sia già stato assegnato un valore numerico: risultato = x > 0
• il loro valore può essere stampato nella finestra della shell con l’istruzione print,
per esempio: print (x > 0)
• possono essere scritte nella shell, nella quale verrà mostrato il loro valore (True
oppure False)
• i valori True e False possono essere assegnati a variabili, per es.: trovato = True
ESEMPIO
1 < 2 produce True poiché 1 è minore di 2
Se x e y sono booleani, possiamo completamente determinare i valori possibili di x and y usando la seguente «tavola di verità»:

xyx and y
FalseFalseFalse
FalseTrueFalse
TrueFalseFalse
TrueTrueTrue

Quindi: x and y è False a meno che x e y non siano entrambe True.
Valgono anche le rispettive negazioni:
not x == y equivale a x != y
not x != y equivale a x == y
not x < y equivale a x >= y
not x <= y equivale a x > y
not x > y equivale a x <= y
not x >= y equivale a x < y

Le espressioni condizionali sono uno dei componenti delle istruzioni condizionali, che consentono di esprimere in un programma la scelta tra due diverse sequenze di istruzioni in base al verificarsi o meno di una certa condizione durante l’esecuzione dello stesso programma.

In linguaggio naturale, un’istruzione condizionale esprime la seguente richiesta all’esecutore di un algoritmo:
se una data condizione è vera, allora esegui una certa sequenza d’istruzioni, altrimenti esegui un’altra sequenza d’istruzioni.
if espr-cond :
sequenza di istruzioni 1
else :
sequenza di istruzioni 2
› le parole-chiave if eelse devono essere scritte senza rientri
› espr-cond è un’espressione condizionale
› sequenza di istruzioni 1 e sequenza di istruzioni 2 sono due sequenze di una o più
istruzioni qualsiasi
› ciascuna di tali istruzioni deve essere scritta in una riga distinta, con un rientro di
almeno un carattere; il rientro deve essere identico per tutte le istruzioni.

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here