Estratto del documento

Python corso di base

Sommario

  • Introduzione
  • Funzioni
  • Operazioni di base
  • Moduli
  • Tipi di dati
  • Eccezioni e asserzioni
  • Variabili
  • Gestione file
  • Strutture di controllo
  • Altri tipi di dati
  • Liste
  • Funzioni utili

Introduzione

Python è un linguaggio di programmazione di alto livello (simile alla logica umana) realizzato da Guido van Rossum e pubblicato nel 1991. È utilizzato in numerose aree come applicazioni web, script, calcoli scientifici e intelligenza artificiale. Python è utilizzato da grandi organizzazioni come Google, NASA, CIA, Disney. È un potente linguaggio per lavorare con i database e manipolare i big data eseguendo calcoli matematici complessi.

L’utilizzo di Python presenta i seguenti vantaggi:

  • È multipiattaforma (funziona su diversi sistemi operativi come Windows, Mac, Linux)
  • Ha una sintassi molto sintetica rispetto a tanti altri linguaggi di programmazione
  • Può essere utilizzato in varie modalità: procedurale, orientato agli oggetti o funzionale

Perché utilizzarlo?

Python è un linguaggio interpretato runtime: non c’è bisogno di compilare il nostro programma prima di eseguirlo. Un interprete è un programma che esegue di volta in volta le istruzioni di uno script. Le versioni correntemente utilizzate del linguaggio sono le 2.x e 3.x. Sono disponibili moltissime implementazioni di Python, tra cui spicca l’implementazione predefinita chiamata CPython. Quest’ultima consente anche la compilazione, generando un bytecode prima dell’interpretazione.

Differenze con altri linguaggi

  • Non utilizza le parentesi graffe per delimitare blocchi di codice.
  • L’indentazione, anziché rendere solo più leggibile il codice, è essenziale per il funzionamento stesso del programma.
  • Non utilizza il punto e virgola al termine di ogni statement.
  • Utilizza le parole anziché i simboli per specificare operatori logici booleani (and, or, not).
  • Non implementa il costrutto switch (utilizzato dagli altri linguaggi per la struttura di controllo condizionale multipla).
  • Non implementa il ciclo iterativo postcondizionato do-while.

Python e Java a confronto

Python è nato 4 anni prima di Java, nel 1991. Sono entrambi linguaggi adatti a qualsiasi tipo di utilizzo, ossia general-purpose. Tuttavia, Java è più associato allo sviluppo classico di applicazioni, mentre Python è ampiamente utilizzato per procedure - spesso relative all’amministrazione di sistema - e operazioni scientifiche complesse.

Java è un linguaggio maggiormente orientato alla “programmazione pura”, mentre Python ai “task”, agli script. Java è un linguaggio compilato, mentre Python è interpretato. Entrambi i linguaggi sono di alto livello e piuttosto intuitivi, con una maggiore sinteticità di Python.

Java non ha “vincoli di indentazione” ossia non è necessario indentare il codice per renderlo funzionante, in quanto utilizza le parentesi graffe per delimitarlo, a differenza di Python. Python è più semplice da imparare rispetto a Java, meno strutturato e un po’ meno potente.

Ambiente di sviluppo

Sul sito www.python.org possiamo scaricare e installare il materiale per eseguire i nostri programmi scritti in Python. Python include IDLE, un ambiente di sviluppo integrato che contiene tools per la scrittura del codice ed il debug di interi programmi. I file di codice sorgente Python hanno l’estensione .py.

Creiamo il nostro primo programma

La sequenza “>>>” indica il prompt della console. Essendo un linguaggio interpretato, ogni riga di codice viene eseguita istantaneamente.

Operazioni di base e tipi di dati

Per stampare un contenuto a video utilizziamo la funzione print(). Tuttavia, possiamo anche ottenere in output risultati diretti di calcoli matematici scrivendo l’espressione:

Output:

>>> 8 + 12
20

(Sulla console verrà mostrato direttamente il risultato 20). Gli spazi tra i segni +, - sono opzionali, ma rendono senz’altro più leggibile il codice. Possiamo inoltre utilizzare i seguenti segni:

  • * per le moltiplicazioni
  • / per le divisioni
  • () per determinare quali operazioni devono essere eseguite per prime

Esempio:

>>> 8 * (12 + 8)
160

L’operazione di divisione produce un risultato di tipo decimale (detto float), ad esempio:

>>> (4 + 8) / 2
6.0

Anziché 6. La divisione per 0 in Python produce un errore. Il tipo di un errore viene descritto nell’ultima riga del messaggio che viene mostrato sulla console:

>>> 8 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero

Floats

I float sono un tipo di dato che rappresenta i numeri decimali come 0.5 o -1.89. Possono essere creati direttamente utilizzando il punto decimale quando digitiamo un valore, o attraverso operazioni come divisioni di interi. Esempio:

>>> 3 / 4
0.75

Un float può anche essere addizionato ad un intero (es. 4 + 2.62) e il risultato sarà automaticamente un numero di tipo float.

Elevamento a potenza

Python supporta anche l’elevamento a potenza. Per farlo, la sintassi è la seguente:

>>> base ** esponente

Esempio:

>>> 2 ** 3
8

Viene calcolato 2 elevato alla terza, quindi 2 x 2 x 2 = 8. Possiamo ad esempio calcolare la radice quadrata di un numero nel seguente modo:

>>> 16 ** (1/2)
4.0

Quoziente e resto

Per calcolare il quoziente di una divisione utilizziamo l’operatore di floor division “//” nel seguente modo:

>>> 20 // 6
3

Per calcolare il resto di una divisione utilizziamo l’operatore modulo “%” nel seguente modo:

>>> 20 % 6
2

Esempio:

>>> 7 % (5 // 2)
1

Nota: viene calcolata prima l’espressione tra parentesi, quindi:

  • 5 // 2 = 2 (il quoziente di 5 / 2)
  • 7 % 2 = 1 (il resto di 7 / 2)
  • Stampa risultato: 1

Stringhe

Per utilizzare il testo in Python utilizziamo le stringhe. Una stringa viene creata racchiudendo il contenuto del testo all’interno di una coppia di virgolette singole o doppie. Solitamente, la console mostra le stringhe con le virgolette singole. Tuttavia, la scelta del delimitatore non ha effetti rilevanti sull’esecuzione del programma.

>>> "Benvenuto al corso!"
'Benvenuto al corso'
>>> 'Cerca sempre il lato positivo'
'Cerca sempre il lato positivo'

Alcuni caratteri non possono essere inclusi direttamente in una stringa. Ad esempio, le doppie virgolette non possono essere inserite in una stringa delimitata già da doppie virgolette, perché ne causerebbe il termine prematuro.

Caratteri come questi possono essere inseriti anteponendo ad essi uno backslash. Esempio:

>>> 'M\'illumino d\'immenso!'
'M’illumino d’immenso!'

\n rappresenta una nuova riga. Il backslash può essere anche utilizzato per caratteri particolari Unicode, tabulazioni, e altri cosiddetti caratteri di escape.

Possiamo anche evitare di scrivere manualmente “\n” per andare a capo in una stringa: è possibile utilizzare delimitatori a virgolette triple, e i newlines verranno creati in automatico quando premiamo Enter per andare a capo.

>>> """Ciao,
come stai?"""
'Ciao,\ncome stai?'

Input

Per l’inserimento di dati in input, è disponibile la funzione input. Questa funzione restituisce sotto forma di stringa il valore inserito dall’utente.

Esempio:

>>> input("Inserisci il tuo nome: ")
Inserisci il tuo nome: (nome che verrà inserito)

I commenti

In ogni linguaggio di programmazione è molto frequente la pratica di commentare il codice. I commenti presentano i seguenti vantaggi:

  • Possono essere utilizzati per spiegare il codice sorgente.
  • Possono essere utilizzati per rendere il codice più leggibile anche ad altre persone.
  • Possono contenere codice che temporaneamente non si vuole eseguire, in base alle necessità di testing del programma.

Per inserire un commento procediamo come segue:

#questo è un commento
print("ciao, come stai?")

Il commento, che inizia dopo il cancelletto, può essere inserito anche a fianco dello statement:

print("ciao") #saluti

I docstrings (stringhe di documentazione)

Per inserire una documentazione che spieghi in più righe il nostro codice procediamo come segue:

"""
questa è
una documentazione
del codice
"""
print("ciao, come stai?")

Indentazione

Python usa l’indentazione, creando spazio vuoto all’inizio di una riga, per delimitare blocchi di codice. Altri linguaggi, come il C, utilizzano le parentesi graffe per la delimitazione dei blocchi. In Python invece non si utilizzano parentesi graffe e l’indentazione è essenziale al funzionamento del programma.

if 8 > 5:
print("8 è maggiore di 5")
print("Programma terminato")

Le variabili

Le variabili sono contenitori che consentono la memorizzazione di valori. Il valore di una variabile, come suggerisce il termine, può variare durante l’esecuzione del programma. Per creare una variabile in Python è sufficiente digitarne il nome ed utilizzare il simbolo = seguito dal valore con cui vogliamo inizializzarla.

Esempio:

>>> x = 10
>>> print(x)
10
>>> print(x+7)
17

Python è case sensitive

Python è case sensitive, ovvero distingue i caratteri minuscoli e maiuscoli. Quindi, se chiamiamo due variabili chiamandole rispettivamente “cognome” e “Cognome”, l’interprete le tratterà come due variabili diverse.

Utilizzare le variabili

Un classico esempio di utilizzo di una variabile è la stampa a video (output). Per fare ciò, ad esempio, possiamo scrivere:

>>> x = 10
>>> y = 8
>>> print(x+y)
'18'

Esempi:

>>> x = 34.5
>>> print(x)
34.5
>>> y = "questa è una stringa"
>>> print(y + "!")
Questa è una stringa!

Se proviamo a riferirci ad una variabile non assegnata otterremo un errore. Per rimuovere una variabile utilizziamo la funzione del seguita dal nome della variabile.

>>> n = input("Inserisci un numero: ")
Inserisci un numero: 8
>>> print(n)
8
>>> del n
>>> n
NameError: name 'n' is not defined

Statements

Ogni istruzione in Python è detta Statement. A differenza di molti altri linguaggi di programmazione, gli statement NON terminano con un punto e virgola.

Corretto:

>>> print("ciao")
'Ciao'

Errato:

>>> print("Ciao");

Regole per i nomi delle variabili

  • Possono contenere lettere, numeri e underscores.
  • Non possono iniziare con numeri.
  • Non possono contenere spazi.
>>> 123abc = 8
SyntaxError: invalid syntax
>>> nome e cognome
SyntaxError: invalid syntax

Alle nostre variabili possiamo assegnare il nome che vogliamo, l’importante è che non sia una parola riservata (non utilizzabile).

Parole riservate in Python

Ogni linguaggio di programmazione ha una serie di parole chiave che non possono essere utilizzate per nominare variabili ecc… Le parole riservate in Python sono le seguenti:

  • and
  • continue
  • else
  • for
  • import
  • not
  • raise
  • assert
  • def
  • except
  • from
  • in
  • or
  • return
  • break
  • del
  • exec
  • global
  • is
  • pass
  • try
  • class
  • elif
  • finally
  • if
  • lambda
  • print
  • while

Conversione dei tipi

In Python, è impossibile completare certe operazioni a causa dei tipi di dati coinvolti in esse. Ad esempio, non possiamo sommare due stringhe contenenti i numeri 4 e 6 per ottenere il risultato 10, perché essendo due stringhe verrà eseguita una concatenazione il cui risultato sarà ‘46’.

In questi casi, la soluzione è la conversione del tipo, anche detta “casting”. Ad esempio, per ottenere il valore numerico di una stringa contenente un numero, possiamo convertire la stringa in intero utilizzando la seguente funzione:

int("stringa_da_convertire_in_intero")

Esempio concatenazione e conversione a confronto:

>>> "4" + "6"
'46'
>>> int("4") + int("6")
10

La conversione dei tipi viene spesso utilizzata anche per convertire l’input dell’utente - acquisito come stringa dalla funzione input - in numero (integer/float).

Esempio:

>>> float(input("Inserisci un numero: ")) + float(input("Inserisci un altro numero: "))
Inserisci un numero: 10
Inserisci un altro numero: 8
18.0

Con la funzione str() possiamo convertire una variabile al tipo di dato stringa.

Esempio:

>>> x = 20
>>> str(x)
'20'

Gli operatori

Per operare con i dati abbiamo a disposizione i seguenti tipi di operatori:

  • Operatori matematici
  • Operatori di assegnazione
  • Operatori di comparazione
  • Operatori logici (booleani)
  • Operatori di stringa

Operatori matematici

Gli operatori matematici a nostra disposizione sono i seguenti:

  • + (addizione) 42 + 12 = 54
  • - (sottrazione) 42 - 12 = 30
  • * (moltiplicazione) 20 * 4 = 80
  • / (divisione) 90 / 2 = 45
  • % (modulo) 10 % 3 = 1

Incremento e decremento

Gli operatori di incremento e decremento:

  • ++ (incremento): utilizzato per incrementare il valore di una variabile
  • -- (decremento): utilizzato per decrementare il valore di una variabile

Post incremento: ritorna il valore originale e poi incrementa il valore dell’operando.

Pre-incremento: incrementa il valore e poi lo ritorna.

Post decremento: ritorna il valore originale e poi decrementa il valore dell’operando.

Pre-decremento: decrementa il valore e poi lo ritorna.

Esempi:

# Post incremento 
a = 0
b = 10
a = b++
# a = 10 e b = 11

# Pre-incremento
a = 0
b = 10
a = ++b
# a = 11 e b = 11

# Post decremento
a = 0
b = 10
a = b--
# a = 10 e b = 9

# Pre-decremento
var a = 0, b = 10;
var a = --b;
# a = 9 e b = 9

Operatore di assegnazione

In Python, il segno uguale è chiamato “operatore di assegnazione”, in quanto ci permette di assegnare un valore ad una variabile.

Ad esempio, x = 10 assegnerà il valore 10 alla variabile di nome x.

Spesso, il valore che verrà assegnato alla variabile sarà il risultato di calcoli e operazioni svolte run-time.

Gli operatori di assegnazione

Gli operatori di assegnazione a nostra disposizione sono:

  • = : x = y equivale a x = y
  • += : x += y equivale a x = x + y
  • -= : x -= y equivale a x = x - y
  • *= : x *= y equivale a x = x * y
  • /= : x /= y equivale a x = x / y
  • %= : x %= y equivale a x = x % y

Gli operatori di comparazione sono utilizzati negli statement logici per definire...

Anteprima
Vedrai una selezione di 10 pagine su 199
Programmazione Python: concetti essenziali Pag. 1 Programmazione Python: concetti essenziali Pag. 2
Anteprima di 10 pagg. su 199.
Scarica il documento per vederlo tutto.
Programmazione Python: concetti essenziali Pag. 6
Anteprima di 10 pagg. su 199.
Scarica il documento per vederlo tutto.
Programmazione Python: concetti essenziali Pag. 11
Anteprima di 10 pagg. su 199.
Scarica il documento per vederlo tutto.
Programmazione Python: concetti essenziali Pag. 16
Anteprima di 10 pagg. su 199.
Scarica il documento per vederlo tutto.
Programmazione Python: concetti essenziali Pag. 21
Anteprima di 10 pagg. su 199.
Scarica il documento per vederlo tutto.
Programmazione Python: concetti essenziali Pag. 26
Anteprima di 10 pagg. su 199.
Scarica il documento per vederlo tutto.
Programmazione Python: concetti essenziali Pag. 31
Anteprima di 10 pagg. su 199.
Scarica il documento per vederlo tutto.
Programmazione Python: concetti essenziali Pag. 36
Anteprima di 10 pagg. su 199.
Scarica il documento per vederlo tutto.
Programmazione Python: concetti essenziali Pag. 41
1 su 199
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher patrizio_riccardi di informazioni apprese con la frequenza delle lezioni di Linguaggio programmazione Python e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Verona o del prof Boscaini Maurizio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community