Python3, tipi di dati

Python3, tipi di dati

Iniziamo dalle basi, tipi di dati, nomi delle variabili e delle funzioni

Python è case sensitive, quindi se scriviamo spam, Spam o spaM ci riferiamo a oggetti differenti tra loro.
I nomi devono iniziare con una lettera o un underscore (_), possono contenere numeri e lettere minuscole e maiuscole.

Per convezione è preferibile utilizzare solo lettere minuscole eventualmente intervallate da underscore (per esempio la_risposta_definitiva o monty_python).

Python ha delle parole chiavi riservate che non possono essere utilizzate per variabili, qui un elenco di alcune di queste:

False None True and as assert break
class continue def del elif else except
finally for from global if import in
is lambda nonlocal not or pass raise
return try while with yield

le variabili sono nomi che fanno riferimento a dei valori.

Istruzione di assegnazione

Per assegnare un valore ad una variabile basta scrivere il nome a sinistra, il segno “=” e il valore che vogliamo assegnare alla variabile.

messaggio = "questa è una stringa"
numero = 13
pi = 3.141592653589793

Python è fortemente tipizzato però, a differenza di altri linguaggi tipizzati, non ha bisogno di inizializzare il tipo di variabile. Python è in grado di riconoscere la variabile dal tipo di assegnazione.
Come negli esempi, messaggio sarà una stringa, numero un intero e pi un float.
La prima assegnazione “inizializza” la variable. Non puoi utilizzare una variabile che non è stata inizializzata.

Le costanti

In molti linguaggi la costante è una variabile che NON può cambiare valore dopo che è stata inizializzata. In python questo non esiste e lascia questo compito al programmatore.
Per ricordarci questo le costanti possono essere scritte in lettere MAIUSCOLE così da rendere evidente a chiunque legga il listato del programma di prestare attenzione:
LA_RISPOSTA_DEFINITIVA = 42

Le liste

La lista è una sequenza ordinata di valori esattamente come la lista della spesa. In Python una stringa che può essere considerata una lista di caratteri.

A differenza della stringa, la lista può contenere elementi eterogenei, cioè di diverso tipo.
Una lista può essere creata semplicemente racchiudendo i suoi elementi tra parentesi quadrate ([ e ]).
[10, 20, 30, 40, 50]
[‘uno’, ‘due’]
[‘spam’, 2.0, 5, [10, 20]]
[]
Questi sono esempi di lista. Nota come il terzo esempio contiene elementi differenti, in particolare un’altra lista: questa viene chiamata lista nidificata. L’ultima è una lista vuota.
Per assegnare una lista ad una variabile:
numeri = [42, 123]
vuota = []

L’indice degli elementi inizia dallo zero. Torneremo in seguito sulle liste.

Le tuple

La tupla è una sequenza di valori. I valori possono essere di qualsiasi tipo e in questo assomigliano moltissimo alle liste. La differenza sostanziale è che le tuple sono immutabili.
Sintatticamente la tupla è un elenco di valori separati da virgole:
t = 'a', 'b', 'c', 'd'
Anche se non è necessario è convenzione racchiudere le tuple tra parentesi tonde:
t = ('a', 'b', 'c', 'd')
Per creare una tupla di un elemento, bisogna mettere una virgola dopo l’elemento altrimenti Python la riconosce come una stringa.
Dalla modalità interattiva possiamo vedere questo utilizzando il comando type (type è una funzione che restituisce il tipo di variabile):

>>> t1 = 'a'
>>> type (t1)
<class 'str'>
>>> t2 = 'a',
>>> type(t2)
<class 'tuple'>

Per creare una tupla vuota;
t = tuple()
Entreremo nel dettaglio delle tuple più avanti.

I dizionari

Un dizionario contiene una raccolta di indici, chiamati chiavi, e una raccolta di valori.
Ciascuna chiave è associata ad un unico valore e l’associazione è detta coppia chiave-valore o coppia chiave-elemento. In linguaggio matematico parliamo di mappatura di una chiave a un valore o che ogni chiave “mappa in” un valore.
Per entrare nel dettaglio:
eng2it = dict()
dict_vuoto = {}
crea un dizionario vuoto
eng2it['one'] = 'uno' inserisce un elemento al dizionario.

Come facilmente intuibile, non ci possono essere due chiavi uguali, l’ultima assegnazione sovrascriverà il valore precedente.

A breve un articolo più approfondito sui dizionari.

Gli insiemi

Gli insiemi sono una collezione non ordinata di elementi NON duplicati.
Per creare un insieme possiamo utilizzare le parentesi graffe o la funzione set().

frutta = {'mela', 'pera', 'arancia', 'mela', 'arancia', 'banana'}
anche se abbiamo inserito elementi doppi il nostro insieme risulterà:
print(frutta)
{'mela', 'pera', 'banana', 'arancia'}

insieme_vuoto = set()
Sugli insiemi possiamo fare tutte le operazioni matematiche relative agli insiemi come unione, intersezione, differenza, ecc.
Vedremo più avanti nel dettaglio.

True, False e None

True e False sono valori booleani che conosciamo bene possono essere inseriti in una variablie o avere come risultato di una richiesta.
flag = True
>>> numeri_pari = (2, 4, 6, 8)
>>> x = 1 in numeri_pari
>>> print(x)
False

La novità è None: il nulla
Python utilizza il nulla in tutte quelle situazioni dove manca un valore definito (es. una funzione che non ritorna nessun valore).

ATTENZIONE: per assegnare un valore True, False o None ad una variabile NON utilizzare gli apici o doppi apici, nel caso viene inizializzata una stringa.

>>> flag1 = True # questa va bene
>>> type(flag1)
<class 'bool'>
>>> flag2 = 'False' # questa è una stringa
>>> type(flag2)
<class 'str'>
>>> flag3 = None # anche questa va bene
>>> type(flag3)
<class 'NoneType'>

Commenti

Parte importante nei programmi che, a volte è trascurato: i commenti.
In Python i commenti iniziano con il simbolo #.

Tutto quello che scrivi DOPO il simbolo # è considerato commento e non influisce in alcun modo nell’esecuzione del programma.

I commenti servono per documentare il codice e quindi un valido aiuto per rinfrescare, spiegare e aiutare la comprensione del programma.

La sintassi in Python

Introduzione a Python

Filippo