3543 Python Appendici
3543 Python Appendici
Gli operatori del linguaggio Python sono elencati nella tabella seguente, in gruppi di
precedenza decrescente. Le righe orizzontali all’interno della tabella delimitano un gruppo
e segnalano un cambiamento nella precedenza tra gli operatori. Gli operatori che hanno
una precedenza più elevata si abbinano ai propri operandi in modo prioritario rispetto a
quelli che hanno una precedenza minore. Ad esempio, x + y * z significa x + (y * z),
perché l’operatore * ha una precedenza più elevata dell’operatore +. Sempre osservando
la tabella, si può capire che x and y or z significa (x and y) or z, perché l’operatore
or ha un livello di precedenza inferiore.
L’associatività di un operatore indica se lo si deve associare da sinistra a destra oppure
da destra a sinistra. In Python, tutti gli operatori si associano da sinistra a destra, tranne
l’operatore di elevamento a potenza. Ad esempio, x – y – z significa (x – y) – z, perché
l’operatore – si associa da sinistra a destra. L’operatore di elevamento a potenza, invece, si
associa da destra a sinistra, quindi x ** y ** z significa x ** (y ** z).
Funzioni predefinite
• abs(x)
Questa funzione calcola il valore assoluto di x, cioè |x|.
Parametro: x, un valore numerico
Restituisce: il valore assoluto dell’argomento
• bytes()
• bytes(x)
Questa funzione crea una nuova sequenza di bytes. Se non viene fornito alcun
argomento, crea una sequenza vuota. Se, come argomento, viene fornito un numero
intero, crea una sequenza di bytes contenente il numero specificato di byte di valore
zero. Se, come argomento, viene fornita una sequenza, crea una sequenza di bytes
che contiene gli elementi di tale sequenza.
Parametro: x, un numero intero o una sequenza
Restituisce: la nuova sequenza di bytes
• chr(x)
Questa funzione crea una stringa contenente un unico carattere, quello il cui codice
Unicode è x.
Parametro: x, un valore di tipo intero
Restituisce: una stringa contenente il carattere il cui codice Unicode è x
• float(x)
Questa funzione converte una stringa o un numero intero in un valore in virgola
mobile.
Parametro: x, una stringa o un valore numerico
Restituisce: un nuovo oggetto di tipo “numero in virgola mobile”
• hash(oggetto)
Questa funzione crea un codice hash per l’oggetto dato. I codici hash sono usati per
confrontare chiavi nei dizionari.
Parametro: oggetto, un oggetto di qualunque tipo
Restituisce: il codice hash (un numero intero)
• input()
• input(prompt)
Questa funzione acquisisce una sequenza di caratteri fornita dall’utente del programma
tramite la tastiera (input standard). Se viene fornito un argomento, prima di acquisire
i caratteri visualizza la stringa prompt sulla finestra di console (output standard).
Parametro: prompt, una stringa da visualizzare come messaggio per l’utente
Restituisce: una stringa contenente i caratteri forniti dall’utente
• int(x)
Questa funzione converte una stringa o un numero in un numero intero.
Parametro: x, una stringa o un valore numerico
Restituisce: un nuovo oggetto di tipo “numero intero”
• isinstance(oggetto, nome)
• isinstance(oggetto, tuplaDiNomi)
Questa funzione determina se l’oggetto è un esemplare di una data classe o di una sua
sottoclasse. Il secondo argomento può essere un unico nome di classe o una tupla
di nomi di classi. Se viene fornita una tupla, la funzione determina se l’oggetto è un
esemplare di una qualsiasi delle classi indicate nella tupla.
Parametri: oggetto, un oggetto di qualunque tipo
nome, un unico nome di classe
tuplaDiNomi, una tupla di nomi di classi
Restituisce: True se l’oggetto è un esemplare di una qualsiasi delle classi fornite
come argomento, altrimenti False
• len(contenitore)
Questa funzione restituisce il numero di elementi presenti nel contenitore.
Parametro: contenitore, un contenitore
Restituisce: un numero intero uguale al numero di elementi del contenitore
• list()
• list(contenitore)
Questa funzione crea una nuova lista. Se non viene fornito alcun argomento, crea una
lista vuota. Se contenitore è una lista, ne crea una copia. Se contenitore è un dizionario,
crea una lista contenente le sue chiavi. Altrimenti, se contenitore è una sequenza, la
nuova lista contiene gli elementi di tale sequenza.
Parametro: contenitore, un contenitore i cui elementi vengono utilizzati per creare
la nuova lista
Restituisce: la nuova lista
• max(argomento1, argomento2, . . .)
• max(contenitore)
Questa funzione restituisce il valore maggiore presente in una raccolta. Se viene fornito
un solo argomento e questo è un contenitore, restituisce il valore maggiore presente
in tale contenitore, che non può essere vuoto. Se vengono forniti più argomenti,
restituisce il valore maggiore tra questi.
Parametri: contenitore, un contenitore
argomento1, argomento2, …, valori confrontabili di qualsiasi tipo
Restituisce: il valore maggiore presente nella raccolta
• min(argomento1, argomento2, . . .)
• min(contenitore)
Questa funzione restituisce il valore minore presente in una raccolta. Se viene fornito
un solo argomento e questo è un contenitore, restituisce il valore minore presente in tale
contenitore, che non può essere vuoto. Se vengono forniti più argomenti, restituisce
il valore minore tra questi.
Parametri: contenitore, un contenitore
argomento1, argomento2, …, valori confrontabili di qualsiasi tipo
Restituisce: il valore minore presente nella raccolta
• open(nomeFile, modalità)
Questa funzione apre un file di testo o binario, di nome nomeFile, e lo associa a
un oggetto di tipo file. Un file può essere aperto in modalità di lettura, di scrittura
o entrambe. Quando un file viene aperto in lettura, il file deve esistere, altrimenti
viene sollevata un’eccezione. Quando un file viene aperto in scrittura e non esiste,
viene creato un nuovo file; altrimenti, il contenuto del file esistente viene cancellato.
Quando un file viene aperto in modalità “append” (per aggiungere dati alla fine di
un file esistente) ma il file non esiste, ne viene creato uno nuovo; altrimenti i nuovi
dati vengono aggiunti in fondo al file esistente.
Parametri: nomeFile, una stringa che specifica il nome del file sul disco
modalità, una stringa che specifica la modalità di apertura del file; le
modalità consentite per un file di testo sono: lettura (“r”), scrittura
(“w”), scrittura in fondo (append, “a”) e lettura/scrittura (“r+”); le
modalità consentite per un file binario sono: lettura (“rb”), scrittura
(“wb”), scrittura in fondo (append, “ab”) e lettura/scrittura (“rb+”)
Restituisce: un oggetto di tipo file associato al file presente sul disco
• ord(carattere)
Questa funzione restituisce il valore del codice Unicode del carattere.
Parametro: carattere, una stringa contenente un solo carattere
Restituisce: il valore del codice Unicode del carattere
• print()
• print(argomento1, argomento2, . . .)
• print(argomento1, argomento2, . . ., end=stringa, sep=stringa,
file=oggettoFile)
Questa funzione visualizza i suoi argomenti (argomento1, argomento2, …) sulla finesta di
console (output standard), separati dalla stringa sep e seguiti dalla stringa end. Se non
viene fornito alcun argomento, la funzione inizia semplicemente una nuova riga (cioè
“va a capo”). In mancanza di valori per i parametri end e sep, gli argomenti vengono
separati da uno spazio e l’ultimo argomento è seguito da un carattere newline (\n), che
inizia una nuova riga. Per impedire che inizi una nuova riga, basta fornire la stringa
vuota come valore del parametro end (cioè end=””). Per separare gli argomenti con
una stringa diversa da uno spazio, basta fornire la stringa come valore del parametro
sep. Per scrivere le informazioni in un file di testo anziché sull’output standard, basta
fornire un oggetto di tipo file come valore del parametro file.
Parametri: argomento1, argomento2, …, i valori da visualizzare
end=stringa, un argomento la cui presenza indica che, dopo aver
visualizzato l’ultimo argomento, verrà visualizzata la stringa
sep=stringa, un argomento la cui presenza indica che stringa verrà
visualizzata per separare ciascuna coppia di argomenti
• range(fine)
• range(inizio, fine)
• range(inizio, fine, passo)
Questa funzione crea un contenitore di tipo sequenza di numeri interi, da usare, ad
esempio, in un enunciato for. La sequenza di numeri inizia dal valore inizio e finisce
al valore fine meno un’unità, con incrementi di valore uguale a passo. Se è presente
il solo argomento fine, allora inizio vale 0 e passo vale 1. Se manca il solo argomento
passo, allora vale 1.
Parametri: inizio, un numero intero che indica il primo valore della sequenza
fine, un numero intero che, diminuito di un’unità, indica l’ultimo
valore della sequenza
passo, un numero intero che indica la differenza tra due valori
consecutivi della sequenza
Restituisce: un oggetto di tipo iteratore, da poter usare in un enunciato for
• round(valore)
• round(valore, cifre)
Questa funzione arrotonda un valore numerico in modo che abbia un dato numero
di cifre decimali. Se viene fornito il solo valore, questo viene arrotondato all’intero
più vicino.
Parametri: valore, il numero (intero o in virgola mobile) che deve essere
arrotondato
cifre, il numero di cifre decimali
Restituisce: il valore arrotondato all’intero più vicino o al numero dato di cifre
decimali
• set()
• set(contenitore)
Questa funzione crea un nuovo insieme. Se non viene fornito alcun argomento, crea
un insieme vuoto. Se contenitore è un insieme, ne crea una copia. Se contenitore è un
dizionario, crea un insieme contenente le sue chiavi. Altrimenti, se contenitore è una
sequenza, il nuovo insieme contiene gli elementi di tale sequenza.
Parametro: contenitore, un contenitore i cui elementi vengono utilizzati per creare
il nuovo insieme
Restituisce: il nuovo insieme
• sorted(contenitore)
Questa funzione crea una lista ordinata in senso crescente contenente gli elementi
del contenitore.
Parametro: contenitore, un contenitore i cui elementi vengono utilizzati per creare
la nuova lista ordinata
Restituisce: la nuova lista ordinata
• sum(contenitore)
Questa funzione calcola la somma degli elementi del contenitore, che deve contenere
numeri.
Parametro: contenitore, un contenitore di valori numerici da sommare
Restituisce: la somma degli elementi del contenitore
• super()
Quando un metodo viene invocato con l’oggetto restituito da questa funzione, viene
in realtà invocato l’omonimo metodo della superclasse.
• tuple()
• tuple(contenitore)
Questa funzione crea una nuova tupla. Se non viene fornito alcun argomento, crea una
tupla vuota. Se contenitore è una tupla, ne crea una copia. Se contenitore è un dizionario,
crea una tupla contenente le sue chiavi. Altrimenti, se contenitore è una sequenza, la
nuova tupla contiene gli elementi di tale sequenza.
Parametro: contenitore, un contenitore i cui elementi vengono utilizzati per creare
la nuova tupla
Restituisce: la nuova tupla
Classi predefinite
Classe dict
• d = dict()
• d = dict(c)
Questa funzione crea un nuovo dizionario. Se non viene fornito alcun argomento,
crea un dizionario vuoto. Se c è un dizionario, ne crea una copia, altrimenti, se c è
una sequenza di oggetti immutabili, gli elementi di tale contenitore diventano le
chiavi del nuovo dizionario.
Parametro: c, una sequenza o un dizionario da cui viene creato il nuovo dizionario
Restituisce: il nuovo dizionario
• valore = d[chiave]
L’operatore [] restituisce il valore associato, nel dizionario d, alla chiave, che deve
esistere, altrimenti viene sollevata un’eccezione.
• d[chiave] = valore
L’operatore [] aggiunge al dizionario d una nuova coppia chiave/valore, se chiave non
è presente nel dizionario. Se, invece, chiave è già presente nel dizionario, questa viene
associata al nuovo valore.
• len(d)
Questa funzione restituisce il numero di coppie presenti nel dizionario d.
Parametro: d, un dizionario
Restituisce: un numero intero uguale al numero di coppie presenti nel dizionario
• d.clear()
Questo metodo elimina tutte le coppie dal dizionario d.
• d.get(chiave, predefinito)
Questo metodo restituisce il valore associato alla chiave nel dizionario d; se la chiave
non è presente nel dizionario d, restituisce il valore predefinito.
Parametri: chiave, la chiave da cercare
predefinito, il valore restituito se la chiave non è presente nel diziona-
rio d
Restituisce: il valore associato alla chiave oppure il valore predefinito se la chiave
non è presente nel dizionario
• d.items()
Questo metodo restituisce una lista contenente tutte le coppie presenti nel dizio-
nario d. La lista contiene una tupla per ogni coppia: il primo elemento di ciascuna
tupla è una delle chiavi, mentre il secondo elemento è il valore associato a quella
chiave.
Restituisce: una lista di tuple contenenti le coppie del dizionario
• d.keys()
Questo metodo restituisce una lista contenente tutte le chiavi presenti nel dizionario d.
Restituisce: una lista contenente le chiavi del dizionario
• d.pop(chiave)
Questo metodo elimina dal dizionario d la chiave e il valore associato a questa.
Parametro: chiave, la chiave da eliminare
Restituisce: il valore associato alla chiave
• d.values()
Questo metodo restituisce una lista contenente tutti i valori presenti nel dizionario d.
Restituisce: una lista contenente i valori del dizionario
Classe list
• l = list()
• l = list(sequenza)
Questa funzione crea una nuova lista vuota oppure contenente tutti gli elementi
della sequenza.
• valore = l[posizione]
L’operatore [] restituisce l’elemento che, nella lista l, si trova in corrispondenza
dell’indice posizione, che deve appartenere all’intervallo degli indici validi, altrimenti
viene sollevata un’eccezione.
• l[posizione] = valore
L’operatore [] sostituisce con il valore l’elemento che, nella lista l, si trova in
corrispondenza dell’indice posizione, che deve appartenere all’intervallo degli indici
validi, altrimenti viene sollevata un’eccezione.
• elemento in l
• elemento not in l
Gli operatori in/not in determinano, rispettivamente, se l’elemento appartiene o non
appartiene alla lista l.
• len(l)
Questa funzione restituisce il numero di elementi presenti nella lista l.
Parametro: l, una lista
Restituisce: un numero intero uguale al numero di elementi presenti nella lista
• l.append(elemento)
Questo metodo aggiunge elemento in fondo alla lista l.
Parametro: elemento, l’elemento da aggiungere
• l.index(elemento)
Questo metodo restituisce la posizione dell’elemento nella lista l. L’elemento deve
essere presente nella lista, altrimenti viene sollevata un’eccezione.
Parametro: elemento, l’elemento da localizzare
Restituisce: la posizione dell’elemento all’interno della lista
• l.insert(posizione, elemento)
Questo metodo inserisce l’elemento in corrispondenza dell’indice posizione nella lista
l. Tutti gli elementi della lista che si trovano in corrispondenza di indici non minori
di posizione vengono spostati nella posizione di indice immediatamente superiore.
Parametri: posizione, la posizione in cui va inserito l’elemento
elemento, l’elemento da inserire
• l.pop()
• l.pop(posizione)
Questo metodo elimina dalla lista l l’ultimo elemento oppure l’elemento che si trova
in corrispondenza dell’indice posizione. Tutti gli elementi della lista che si trovano in
corrispondenza di indici maggiori di posizione vengono spostati nella posizione di
indice immediatamente inferiore.
Parametro: posizione, la posizione dell’elemento da eliminare
Restituisce: l’elemento eliminato
• l.sort()
Questo metodo ordina in senso crescente gli elementi della lista l.
Classe set
• s = set()
• s = set(sequenza)
Questa funzione crea un nuovo insieme vuoto o contenente gli elementi presenti
nella sequenza. Se la sequenza contiene valori duplicati, viene aggiunto all’insieme un
solo esemplare di ciascun valore.
Parametro: sequenza, una sequenza da cui viene creato il nuovo insieme
Restituisce: il nuovo insieme
• elemento in s
• elemento not in s
Gli operatori in/not in determinano, rispettivamente, se l’elemento appartiene o non
appartiene all’insieme s.
• len(s)
Questa funzione restituisce il numero di elementi presenti nell’insieme s.
Parametro: s, un insieme
Restituisce: un numero intero uguale al numero di elementi presenti nell’insieme
• s.add(elemento)
Questo metodo aggiunge l’elemento all’insieme s. Se l’elemento appartiene già
all’insieme, non viene intrapresa alcuna azione.
Parametro: elemento, il nuovo elemento
• s.clear()
Questo metodo elimina tutti gli elementi dall’insieme s.
• s.difference(t)
Questo metodo crea un nuovo insieme che contiene gli elementi dell’insieme s che
non appartengono all’insieme t.
Parametro: t, un insieme
Restituisce: il nuovo insieme risultante dalla differenza tra insiemi
• s.discard(elemento)
Questo metodo elimina l’elemento dall’insieme s. Se l’elemento non appartiene
all’insieme s, non viene intrapresa alcuna azione.
Parametro: elemento, l’elemento che deve essere eliminato dall’insieme
• s.issubset(t)
Questo metodo determina se l’insieme s è un sottoinsieme dell’insieme t.
Parametro: t, un insieme
Restituisce: True se s è un sottoinsieme di t, altrimenti False
• s.remove(elemento)
Questo metodo elimina l’elemento dall’insieme s. Se l’elemento non appartiene
all’insieme s, viene sollevata un’eccezione.
Parametro: elemento, l’elemento che deve essere eliminato dall’insieme
• s.union(t)
Questo metodo crea un nuovo insieme che contiene gli elementi che appartengono
all’insieme s o all’insieme t, o a entrambi.
Parametro: t, un insieme
Restituisce: il nuovo insieme risultante dall’unione tra insiemi
Classe str
• s = str()
• s = str(oggetto)
Questa funzione crea una nuova stringa vuota oppure risultante dalla conversione
in stringa dell’oggetto.
Parametro: oggetto, l’oggetto da convertire in stringa
Restituisce: la nuova stringa
• sottostringa in s
• sottostringa not in s
Gli operatori in/not in determinano, rispettivamente, se la sottostringa è presente o
non è presente nella stringa s.
• len(s)
Questa funzione restituisce la lunghezza della stringa s.
Parametro: s, una stringa
Restituisce: un numero intero uguale al numero di caratteri presenti nella stringa
• s.count(sottostringa)
Questo metodo restituisce il numero di occorrenze non sovrapposte della sottostringa
nella stringa s.
Parametro: sottostringa, la sottostringa da cercare
Restituisce: il numero di occorrenze non sovrapposte della sottostringa nella stringa
• s.find(sottostringa)
• s.find(sottostringa, inizio)
Questo metodo restituisce il minimo valore dell’indice in cui inizia la sottostringa
all’interno della stringa s, oppure –1 se la sottostringa non è presente in s. Se è presente
il parametro inizio, la ricerca nella stringa s viene effettuata a partire dalla posizione
inizio, fino alla fine della stringa.
Parametri: sottostringa, la sottostringa da cercare
inizio, la posizione in s da cui inizia la ricerca
Restituisce: la posizione in cui la sottostringa inizia nella stringa
• s.isalnum()
Questo metodo verifica se la stringa s è costituita soltanto da lettere e cifre, e contiene
almeno un carattere.
Restituisce: True se entrambe le condizioni sono vere, altrimenti False
• s.isalpha()
Questo metodo verifica se la stringa s è costituita soltanto da lettere e contiene
almeno un carattere.
Restituisce: True se entrambe le condizioni sono vere, altrimenti False
• s.isdigit()
Questo metodo verifica se la stringa s è costituita soltanto da cifre e contiene almeno
un carattere.
Restituisce: True se entrambe le condizioni sono vere, altrimenti False
• s.islower()
Questo metodo verifica se la stringa s è costituita soltanto da lettere minuscole e
contiene almeno un carattere.
Restituisce: True se entrambe le condizioni sono vere, altrimenti False
• s.isspace()
Questo metodo verifica se la stringa s è costituita soltanto da caratteri di spaziatura
(spazi, caratteri di tabulazione e caratteri di “nuova riga”) e contiene almeno un
carattere.
Restituisce: True se entrambe le condizioni sono vere, altrimenti False
• s.isupper()
Questo metodo verifica se la stringa s è costituita soltanto da lettere maiuscole e
contiene almeno un carattere.
Restituisce: True se entrambe le condizioni sono vere, altrimenti False
• s.lower()
Questo metodo restituisce una nuova stringa che è la versione minuscola della stringa s.
Restituisce: una nuova stringa che è la versione minuscola della stringa
• s.replace(vecchia, nuova)
Questo metodo restituisce una nuova versione della stringa s nella quale tutte le
occorrenze della stringa vecchia sono state sostituite dalla stringa nuova.
Parametri: vecchia, la sottostringa da sostituire
nuova, la sottostringa che va a sostituire la vecchia
Restituisce: una nuova versione della stringa
• s.rstrip()
• s.rstrip(caratteri)
Questo metodo restituisce una nuova versione della stringa s nella quale sono stati
eliminati tutti i caratteri di spaziatura (spazi, caratteri di tabulazione e caratteri di
“nuova riga”) finali, cioè all’estremità “destra” (“right”, da cui la lettera r). Se viene
fornito un argomento, invece dei caratteri di spaziatura vengono eliminati i caratteri
presenti nella stringa caratteri.
Parametro: caratteri, una stringa che specifica i caratteri da eliminare
Restituisce: una nuova versione della stringa
• s.rsplit(sep, maxSuddivisioni)
Questo metodo restituisce una lista di sottostringhe generate suddividendo la stringa
s a partire dalla fine (cioè dall’estremità “destra”, “right”, da cui la lettera r) e usando
la sottostringa sep come separatore. Al massimo vengono generate maxSuddivisioni
+ 1 sottostringhe.
Parametri: sep, la sottostringa che specifica il separatore usato per la suddivisione
maxSuddivisioni, il massimo numero di suddivisioni
Restituisce: una lista di sottostringhe generate suddividendo la stringa
• s.split()
• s.split(sep)
• s.split(sep, maxSuddivisioni)
Questo metodo restituisce una lista di sottostringhe generate suddividendo la stringa
s a partire dall’inizio e usando la sottostringa sep come separatore (se il parametro
sep non è presente, viene usata una stringa contenente soltanto uno spazio). Se è
presente il parametro maxSuddivisioni, al massimo vengono generate maxSuddivisioni
+ 1 sottostringhe.
Parametri: sep, la sottostringa che specifica il separatore usato per la suddivisione
maxSuddivisioni, il massimo numero di suddivisioni
Restituisce: una lista di sottostringhe generate suddividendo la stringa
• s.startswith(sottostringa)
Questo metodo determina se la stringa s inizia con la sottostringa.
Parametro: sottostringa, la sottostringa da cercare
Restituisce: True se la stringa inizia con la sottostringa, altrimenti False
• s.strip()
• s.strip(caratteri)
Questo metodo restituisce una nuova versione della stringa s nella quale sono stati
eliminati tutti i caratteri di spaziatura (spazi, caratteri di tabulazione e caratteri di
“nuova riga”) iniziali e finali. Se viene fornito un argomento, invece dei caratteri di
spaziatura vengono eliminati i caratteri presenti nella stringa caratteri.
Parametro: caratteri, una stringa che specifica i caratteri da eliminare
Restituisce: una nuova versione della stringa
• s.upper()
Questo metodo restituisce una nuova stringa che è la versione maiuscola della stringa s.
Restituisce: una nuova stringa che è la versione maiuscola della stringa
• open(nomeFile, modalità)
Questa funzione apre un file di testo o binario, di nome nomeFile, e lo associa a
un oggetto di tipo file. Un file può essere aperto in modalità di lettura, di scrittura
o entrambe. Quando un file viene aperto in lettura, il file deve esistere, altrimenti
viene sollevata un’eccezione. Quando un file viene aperto in scrittura e non esiste,
viene creato un nuovo file; altrimenti, il contenuto del file esistente viene cancellato.
Quando un file viene aperto in modalità “append” (per aggiungere dati alla fine di
un file esistente) ma il file non esiste, ne viene creato uno nuovo; altrimenti i nuovi
dati vengono aggiunti in fondo al file esistente.
Parametri: nomeFile, una stringa che specifica il nome del file sul disco
modalità, una stringa che specifica la modalità di apertura del file; le
modalità consentite per un file di testo sono: lettura (“r”), scrittura
(“w”), scrittura in fondo (append, “a”) e lettura/scrittura (“r+”); le
modalità consentite per un file binario sono: lettura (“rb”), scrittura
(“wb”), scrittura in fondo (append, “ab”) e lettura/scrittura (“rb+”)
Restituisce: un oggetto di tipo file associato al file presente sul disco
• f.seek(scostamento, rispettoA)
Questo metodo sposta il cursore all’interno del file f di un numero di byte uguale a
scostamento. L’argomento rispettoA indica se lo spostamento avviene rispetto all’inizio
del file (SEEK_SET), all’attuale posizione del cursore (SEEK_CUR) o alla fine del file
(SEEK_END).
Parametri: scostamento, un numero intero che indica di quanti byte spostare il
cursore
rispettoA, una delle costanti SEEK_SET, SEEK_CUR o SEEK_END (definite
nel modulo os)
Restituisce: la nuova posizione assoluta del cursore, relativa all’inizio del file
• f.tell()
Questo metodo restituisce l’attuale posizione del cursore nel file f.
Restituisce: la posizione assoluta del cursore, relativa all’inizio del file
• f.read()
• f.read(numero)
Questo metodo legge dal file di testo f aperto in lettura i successivi caratteri e li
restituisce sotto forma di stringa. Se non viene fornito alcun argomento, viene letto
l’intero file e il suo contenuto viene restituito come un’unica stringa, altrimenti viene
letta una quantità di caratteri uguale a numero. Se dal file sono già stati letti tutti i
caratteri disponibili, viene restituita una stringa vuota.
Parametro: numero, un numero intero che indica quanti caratteri devono essere
letti
Restituisce: una stringa contenente i caratteri letti dal file
• f.readline()
Questo metodo legge dal file di testo f aperto in lettura la successiva riga di testo
e la restituisce sotto forma di stringa. Se è già stata raggiunta la fine del file, viene
restituita una stringa vuota.
Restituisce: una stringa contenente i caratteri letti dal file
• f.readlines()
Questo metodo legge dal file di testo f aperto in lettura la porzione di testo rimanente
e la restituisce sotto forma di una lista di stringhe, ciascuna delle quali contiene una
riga del testo letto dal file.
Restituisce: una lista di stringhe contenenti le righe di testo lette dal file
• f.write(stringa)
Questo metodo scrive la stringa nel file di testo f aperto in scrittura.
Parametro: stringa, la stringa da scrivere
• f.read()
• f.read(numero)
Questo metodo legge dal file binario f aperto in lettura i successivi byte e li restituisce
sotto forma di sequenza di bytes. Se non viene fornito alcun argomento, viene letto
l’intero file e il suo contenuto viene restituito come un’unica sequenza di bytes,
altrimenti viene letta una quantità di byte uguale a numero.
Parametro: numero, un numero intero che indica quanti byte devono essere letti
Restituisce: una sequenza di bytes contenente i byte letti dal file
• f.write(dati)
Questo metodo scrive nel file binario f, aperto in scrittura, la sequenza di bytes dati.
Parametro: dati, una sequenza di bytes
Il modulo csv
Classe reader
• r = reader(nomeFile)
Questa funzione crea un nuovo oggetto di tipo “lettore”, da utilizzare per scandire il
contenuto di un file CSV. Se il file non esiste viene sollevata un’eccezione.
Parametro: nomeFile, una stringa contenente il nome del file CSV
Restituisce: un oggetto di tipo “lettore di CSV”
Classe writer
• w = writer(nomeFile)
Questa funzione crea un nuovo oggetto di tipo “scrittore”, da utilizzare per creare un
nuovo file CSV. Se il file non esiste viene creato un nuovo file, altrimenti il contenuto
del file esistente viene cancellato.
Parametro: nomeFile, una stringa contenente il nome del file CSV
Restituisce: un oggetto di tipo “scrittore di CSV”
• w.writerow(riga)
Questo metodo aggiunge una riga di dati al file CSV rappresentato dall’oggetto w. I
dati contenuti in riga devono essere una sequenza di stringhe o numeri.
Parametro: riga, la sequenza di stringhe o numeri che costituiscono la riga da
scrivere
Il modulo email.mime.multipart
• m = MIMEMultipart()
Questa funzione crea e restituisce un nuovo oggetto di tipo Message di MIME, usato
per creare messaggi di posta elettronica (e-mail).
Restituisce: un oggetto di tipo Message
Classe Message
• m.add_header(campo, valore)
Questo metodo aggiunge al messaggio m una nuova riga di intestazione, costituita
dal campo e dal relativo valore.
Parametri: campo, una stringa contenente il nome del campo d’intestazione da
aggiungere
valore, una stringa contenente il valore associato al campo
• m.attach(contenuto)
Questo metodo aggiunge contenuto (che deve essere un oggetto di tipo “contenuto
MIME”) al corpo del messaggio m.
Parametro: contenuto, un oggetto di tipo “contenuto MIME” contenente le
informazioni da aggiungere al corpo del messaggio
Il modulo email.mime.text
• MIMEText(dati, tipo)
Questa funzione crea un nuovo oggetto di tipo “contenuto MIME”, contenente il
testo dati.
Parametri: dati, una stringa contenente il testo da inserire nell’oggetto
tipo, una stringa contenente la codifica MIME del tipo di testo (ad
esempio, “plain” o “text”)
Restituisce: un oggetto di tipo “contenuto MIME”
Il modulo email.mime.image
• MIMEImage(dati)
Questa funzione crea un nuovo oggetto di tipo “contenuto MIME”, contenente i
dati relativi a un’immagine.
Parametro: dati, una stringa contenente i dati relativi a un’immagine
Restituisce: un oggetto di tipo “contenuto MIME”
Il modulo email.mime.application
• MIMEApplication(dati)
Questa funzione crea un nuovo oggetto di tipo “contenuto MIME”, contenente i dati
relativi a un tipo di dato specifico per un’applicazione, ad esempio un documento
PDF o un foglio elettronico.
Parametro: dati, una stringa contenente i dati da memorizzare
Restituisce: un oggetto di tipo “contenuto MIME”
Il modulo json
• dumps(d)
Questa funzione converte in una stringa avente il formato JSON l’intero contenuto
del dizionario d.
Parametro: d, un dizionario da cui viene creata una stringa in formato JSON
Restituisce: una stringa in formato JSON
• loads(s)
Questa funzione converte una stringa avente il formato JSON in un dizionario. I
valori numerici vengono convertiti nel tipo di dato più appropriato (numero intero
o in virgola mobile).
Parametro: s, una stringa in formato JSON
Restituisce: un dizionario contenente i dati estratti dalla stringa in formato JSON
Il modulo math
• e
Questa costante è il valore di e, la base dei logaritmi naturali.
• pi
Questa costante è il valore di π.
• acos(x)
Questa funzione restituisce l’angolo avente x come coseno, cioè cos–1x ∈ [0, π].
Parametro: x, un valore in virgola mobile compreso tra –1 e 1
Restituisce: l’arcocoseno dell’argomento, in radianti
• asin(x)
Questa funzione restituisce l’angolo avente x come seno, cioè sin–1x ∈ [–π/2, π/2].
Parametro: x, un valore in virgola mobile compreso tra –1 e 1
Restituisce: l’arcoseno dell’argomento, in radianti
• atan(x)
Questa funzione restituisce l’angolo avente x come tangente, cioè tan–1x ∈ (–π/2, π/2).
Parametro: x, un valore in virgola mobile
Restituisce: l’arcotangente dell’argomento, in radianti
• atan2(y, x)
Questa funzione restituisce l’angolo avente y/x come tangente, cioè tan–1(y/x) ∈ (–π,
π). Se x può essere uguale a zero oppure se è necessario distinguere l’orientamento
“nord ovest” da quello “sud est”, allora si usa questa funzione invece della funzione
atan(y/x).
Parametri: y, x, due valori in virgola mobile
Restituisce: l’angolo, in radianti, tra l’asse x del piano cartesiano e la retta che passa
per i punti (0, 0) e (x, y)
• cos(x)
Questa funzione restituisce il coseno dell’angolo x, espresso in radianti.
Parametro: x, un angolo espresso in radianti
Restituisce: il coseno dell’argomento
• degrees(x)
Questa funzione converte in gradi un valore espresso in radianti.
Parametro: x, un angolo espresso in radianti
Restituisce: l’angolo espresso in gradi
• exp(x)
Questa funzione restituisce il valore ex, dove e è la base dei logaritmi naturali.
Parametro: x, un valore in virgola mobile
Restituisce: ex
• fabs(x)
Questa funzione restituisce, come numero in virgola mobile, il valore assoluto di x,
cioè |x|.
Parametro: x, un valore numerico
Restituisce: il valore assoluto dell’argomento, come numero in virgola mobile
• factorial(x)
Questa funzione restituisce x!, cioè il fattoriale di x.
Parametro: x, un numero intero non negativo
Restituisce: il fattoriale dell’argomento
• floor(x)
Questa funzione restituisce (come numero in virgola mobile) il massimo numero
intero ≤ x.
Parametro: x, un valore in virgola mobile
Restituisce: il massimo numero intero ≤ x
• hypot(x, y)
Questa funzione restituisce la norma euclidea x 2 + y 2
Parametri: x, y, due valori numerici
Restituisce: la lunghezza del segmento che congiunge l’origine delle coordinate
cartesiane e il punto (x, y)
• log(x)
• log(x, base)
Questa funzione restituisce il logaritmo naturale (cioè in base e) di x oppure, se viene
fornito il secondo argomento, il logaritmo di x in base base.
• log2(x)
Questa funzione restituisce il logaritmo di x in base 2.
Parametro: x, un numero positivo
Restituisce: il logaritmo in base 2 dell’argomento
• log10(x)
Questa funzione restituisce il logaritmo di x in base 10.
Parametro: x, un numero positivo
Restituisce: il logaritmo in base 10 dell’argomento
• radians(x)
Questa funzione converte in radianti un valore espresso in gradi.
Parametro: x, un angolo espresso in gradi
Restituisce: l’angolo espresso in radianti
• sin(x)
Questa funzione restituisce il seno dell’angolo x, espresso in radianti.
Parametro: x, un angolo espresso in radianti
Restituisce: il seno dell’argomento
• sqrt(x)
Questa funzione restituisce la radice quadrata di x.
Parametro: x, un numero in virgola mobile non negativo
Restituisce: la radice quadrata dell’argomento
• tan(x)
Questa funzione restituisce la tangente dell’angolo x, espresso in radianti.
Parametro: x, un angolo espresso in radianti
Restituisce: la tangente dell’argomento
• trunc(x)
Questa funzione restituisce la parte intera di x.
Parametri: x, un numero
Restituisce: la parte intera dell’argomento
Il modulo os
• SEEK_CUR
• SEEK_END
• SEEK_SET
Queste costanti sono usate nell’invocazione del metodo seek per specificare la
posizione relativamente alla quale va spostato il cursore di un file: SEEK_CUR indica
che lo spostamento è relativo alla posizione attuale del cursore, SEEK_END indica che
è relativo alla fine del file e SEEK_SET che è relativo all’inizio.
• getcwd()
Questa funzione restituisce il nome completo del percorso rappresentato dalla cartella
di lavoro attuale.
Restituisce: una stringa contenente il nome della cartella di lavoro attuale
• listdir()
• listdir(percorso)
Questa funzione restituisce una lista contenente i nomi degli elementi (file o sotto-
cartelle) presenti nella cartella indicata dal percorso o dalla cartella di lavoro attuale
(se manca il percorso).
Parametro: percorso, una stringa contenente il nome (assoluto o relativo) di una
cartella
Restituisce: una lista di stringhe contenente i nomi degli elementi presenti nella
cartella indicata
• remove(nomeFile)
Questa funzione cancella un file esistente.
Parametro: nomeFile, una stringa contenente il nome (assoluto o relativo) di un
file esistente
• rename(vecchio, nuovo)
Questa funzione assegna il nuovo nome al vecchio file.
Parametri: vecchio, una stringa contenente il nome (assoluto o relativo) di un file
esistente
nuovo, una stringa contenente il nuovo nome (assoluto o relativo) del
file
Il modulo os.path
• exists(percorso)
Questa funzione determina se il percorso fa riferimento a un file o a una cartella
esistente.
Parametro: percorso, una stringa contenente il nome (assoluto o relativo) di una
cartella o di un file
Restituisce: True se il file o la cartella esiste, altrimenti False
• getsize(percorso)
Questa funzione restituisce la dimensione del file il cui nome è indicato dal percorso.
Parametro: percorso, una stringa contenente il nome (assoluto o relativo) di un file
Restituisce: la dimensione del file, in byte
• isfile(percorso)
Questa funzione determina se percorso è il nome di un file.
Parametro: percorso, una stringa contenente il nome (assoluto o relativo) di un file
Restituisce: True se percorso è il nome di un file, altrimenti False
• join(percorso, nome)
Questa funzione aggiunge al percorso il nome di un file o di una cartella, inserendo tra
le due stringhe il separatore di percorso appropriato per il sistema operativo in uso.
Parametri: percorso, una stringa contenente il nome (assoluto o relativo) di una
cartella
nome, una stringa contenente il nome del file o della cartella da ag-
giungere
Restituisce: una stringa contenente il nome del nuovo percorso
Il modulo random
• randint(primo, ultimo)
Questa funzione restituisce il successivo numero intero di una sequenza pseudo-
casuale uniformemente distribuita nell’intervallo [primo, ultimo].
Parametri: primo, ultimo, il primo e l’ultimo valore dell’intervallo di numeri interi
Restituisce: il successivo numero intero pseudo-casuale ≥ primo e ≤ ultimo
• random()
Questa funzione restituisce il successivo numero in virgola mobile di una sequenza
pseudo-casuale uniformemente distribuita nell’intervallo [0.0, 1.0).
Restituisce: il successivo numero pseudo-casuale in virgola mobile ≥ 0.0 e < 1.0
Il modulo re
• split(schema, stringa)
Questa funzione suddivide la stringa in corrispondenza di ciascuna occorrenza
dell’espressione canonica schema e restituisce una lista con le sottostringhe generate
dalla suddivisione.
Parametri: schema, una stringa contenente un’espressione canonica usata per
determinare i punti in cui suddividere la stringa data
stringa, una stringa da suddividere sulla base dello schema fornito
Restituisce: una lista contenente le sottostringhe generate dalla suddivisione
Il modulo shutil
• copy(sorgente, destinazione)
Questa funzione copia l’intero contenuto del file sorgente nel nuovo file destinazione
o in un nuovo file di nome sorgente nella cartella destinazione.
Parametri: sorgente, una stringa contenente il nome (assoluto o relativo) di un file
esistente
destinazione, una stringa contenente il nome (assoluto o relativo) di
un file o di una cartella esistente
Il modulo smtplib
Classe SMTP
• c = SMTP(host, porta)
Questa funzione crea un nuovo oggetto di tipo “connessione SMTP” per instaurare
una connessione con un server di posta elettronica, per inviare un messaggio.
Parametri: host, una stringa contenente il nome del computer che ospita il server
porta, un numero intero che specifica la porta di rete a cui connettersi
sul server
Restituisce: un oggetto di tipo “connessione SMTP”
• c.starttls()
Questo metodo crea la connessione con il server di posta elettronica rappresentato
da c e attiva la comunicazione sicura.
• c.login(nomeUtente, password)
Questo metodo esegue l’accesso sul server usando le credenziali fornite.
Parametri: nomeUtente, una stringa contenente il nome dell’utente
password, una stringa contenente la password dell’utente
• c.send_message(messaggio)
Questo metodo trasmette un messaggio di posta elettronica dal vostro computer al server
rappresentato da c, il quale, a sua volta, inoltra il messaggio al destinatario specificato.
Parametro: messaggio, un oggetto di tipo Message, con intestazione e corpo
• c.quit()
Questo metodo chiude la comunicazione con il server rappresentato da c.
Il modulo sys
• argv
Questa variabile fa riferimento a una lista di stringhe che memorizza gli argomenti
usati sulla riga di comando per mettere in esecuzione il programma.
Il modulo time
• sleep(secondi)
Questa funzione sospende l’esecuzione del programma per un dato numero di secondi.
Parametro: secondi, il numero di secondi di sospensione del programma
• time()
Questa funzione restituisce la differenza di tempo, misurata in secondi, tra l’istante
attuale e la mezzanotte del giorno 1 gennaio 1970, secondo il Tempo Universale
(Universal Time).
Restituisce: la differenza di tempo, in secondi, tra ora e la mezzanotte del 1 gennaio
1970
Il modulo urllib.parse
• urlencode(parametri)
Questa funzione crea una stringa che contiene una sequenza di argomenti associati
a un URL, nel formato adatto all’utilizzo come argomento della funzione urllib.
request.urlopen. Gli argomenti da inserire nella stringa vanno specificati come
coppie chiave/valore nel dizionario parametri.
Parametro: parametri, un dizionario contenente le coppie chiave/valore che
descrivono gli argomenti dell’URL
Restituisce: una stringa contenente gli argomenti associati a un URL, nel formato
corretto
Il modulo urllib.request
• r = urlopen(url)
Questa funzione si connette alla pagina web identificata dall’indirizzo url e la apre
in modalità di lettura, restituendo un oggetto di tipo HTTPResponse che gestirà le
operazioni di lettura.
Parametro: url, una stringa contenente l’indirizzo in formato URL della pagina
web da leggere
Restituisce: un oggetto di tipo HTTPResponse
Classe HTTPResponse
• r.read()
Questo metodo legge il corpo della pagina web rappresentata dall’oggetto r di tipo
HTTPResponse e la restituisce sotto forma di sequenza di byte.
Restituisce: una sequenza di byte contenente l’intero corpo della pagina web
• r.close()
Questo metodo chiude la connessione rappresentata dall’oggetto r di tipo
HTTPResponse.
Il modulo ezgraphics
Il modulo ezgraphics utilizzato in questo libro è basato sui componenti grafici di un
progetto open source.Visitate il sito http://ezgraphics.org per avere maggiori informa-
zioni sul progetto e per consultare la documentazione più completa sull’utilizzo di tutte
le caratteristiche disponibili.
Classe GraphicsWindow
• w = GraphicsWindow()
• w = GraphicsWindow(larghezza, altezza)
Questa funzione crea una nuova finestra che contiene un pannello grafico (canvas)
vuoto. La dimensione del pannello è 400 per 400 pixel, a meno che non siano definiti
i parametri larghezza e altezza.
Parametri: larghezza, altezza, le dimensioni del pannello grafico contenuto nella
finestra, in pixel
Restituisce: il nuovo oggetto di tipo “finestra con pannello grafico”
• w.canvas()
Questo metodo restituisce un riferimento al pannello grafico contenuto nella finestra
w.
Restituisce: un riferimento al pannello grafico
• w.close()
Questo metodo chiude la finestra w e la elimina definitivamente dal desktop. Dopo
essere stata chiusa, una finestra non può più essere utilizzata.
• w.getKey()
Questo metodo acquisisce e restituisce il successivo tasto premuto dall’utente sulla
tastiera. Il programma sospende la propria esecuzione e rimane in attesa della pressione
di un tasto.
Restituisce: una stringa che indica quale tasto è stato premuto
• w.getMouse()
Questo metodo acquisisce e restituisce la posizione del mouse nel momento in cui
ne viene premuto il pulsante all’interno del pannello grafico di w. Il programma
• w.hide()
Questo metodo nasconde la finestra w. La finestra rimane aperta e utilizzabile, ma
non è visibile sul desktop. Se la finestra non è valida, viene sollevata un’eccezione.
• w.isValid()
Questo metodo determina se la finestra w è valida (cioè se è aperta).
Restituisce: True se la finestra è valida (cioè aperta), altrimenti, se è chiusa, False
• w.setTitle(titolo)
Questo metodo imposta il testo che viene visualizzato nella barra del titolo della
finestra w.
Parametro: titolo, la stringa che sarà il titolo della finestra
• w.show()
Questo metodo rende visibile la finestra w sul desktop. Se la finestra non è valida,
viene sollevata un’eccezione.
• w.wait()
Questo metodo tiene aperta la finestra w e attende che l’utente selezioni il pulsante di
chiusura presente sulla barra del titolo oppure che il programma invochi la funzione
close.
Classe GraphicsCanvas
• c.clear()
Questo metodo ripulisce il pannello grafico c rimuovendo tutte le forme geometriche
e il testo che vi sono stati precedentemente disegnati.
• c.drawImage(immagine)
• c.drawImage(x, y, immagine)
Questo metodo disegna un’immagine nel pannello c. L’immagine viene disegnata
in modo che il suo angolo superiore sinistro coincida con il punto di coordinate
(0, 0) o (x, y), se questi parametri sono specificati. Nel primo caso, il pannello
viene ridimensionato in modo da coincidere con il rettangolo di delimitazione
dell’immagine.
Parametri: x, y, le coordinate del vertice superiore sinistro dell’immagine
immagine, un oggetto di tipo GraphicsImage contenente l’immagine
da visualizzare
Restituisce: un numero intero che identifica in modo univoco l’immagine disegnata
nel pannello
• c.drawPoint(x, y)
Questo metodo disegna un punto nel pannello c.
Parametri: x, y, le coordinate del punto (due numeri interi)
Restituisce: un numero intero che identifica in modo univoco il punto disegnato
nel pannello
• c.drawPoly(sequenza)
• c.drawPoly(x1, y1, x2, y2, x3, y3, . . .)
Questo metodo disegna nel pannello c un poligono, usando i vertici specificati come
una sequenza di coordinate x e y. In alternativa, le coordinate dei vertici possono
essere specificate come un elenco di più argomenti.
Parametri: sequenza, una lista o tupla di numeri interi che specificano le coordinate
dei vertici del poligono (deve contenere almeno sei valori)
x1, y1, x2, y2, x3, y3, …, le coordinate dei vertici del poligono (numeri
interi)
Restituisce: un numero intero che identifica in modo univoco il poligono disegnato
nel pannello
• c.drawText(x, y, testo)
Questo metodo disegna una stringa di testo nel pannello c. Il testo viene disegnato
in posizione relativa al punto di ancoraggio, di coordinate (x, y), posizionato nel
vertice superiore sinistro del rettangolo che delimita il testo (la posizione del punto
di ancoraggio rispetto al testo può essere modificata con il metodo setAnchor). Se
la stringa contiene dei caratteri newline (cioè \n), vengono scritte più righe di testo.
Parametri: x, y, le coordinate del punto di ancoraggio
testo, la stringa contenente il testo da disegnare
Restituisce: un numero intero che identifica in modo univoco il testo disegnato
nel pannello
• c.height()
Questo metodo restituisce l’altezza (cioè la dimensione verticale) del pannello c.
Restituisce: l’altezza del pannello
• c.width()
Questo metodo restituisce la larghezza (cioè la dimensione orizzontale) del pannello c.
Restituisce: la larghezza del pannello
• c.setAnchor(posizione)
Questo metodo imposta la posizione di ancoraggio che verrà usata per disegnare testo
nel pannello c. La posizione è un punto del rettangolo che delimita il testo e viene
specificata con una direzione “geografica”. Infatti, la posizione può essere una delle
stringhe seguenti: “n” (nord), “s” (sud), “e” (est), “w” (ovest), “nw” (nord-ovest), “ne
(nord-est), “sw” (sud-ovest), “se” (sud-est), “center” (centro).
Parametro: posizione, la posizione di ancoraggio (una delle stringhe elencate)
• c.setArcStyle(stile)
Questo metodo imposta lo stile che verrà usato per disegnare archi di cerchio nel
pannello c. Un arco può essere disegnato in tre modi: come settore circolare (“slice”),
come corda (“chord”) o come arco vero e proprio (“arc”).
Parametro: stile, lo stile per disegnare archi (una delle stringhe elencate)
• c.setColor(nome)
• c.setColor(rosso, verde, blu)
Questo metodo imposta allo stesso valore tanto il colore di riempimento (“fill”)
quanto il colore del profilo (“outline”) che verranno usati per disegnare forme
nel pannello c. Il colore può essere specificato per nome o usando i valori delle sue
componenti: rosso, verde e blu.
Parametri: nome, la stringa che indica il nome di un colore
rosso, verde, blu, numeri interi compresi tra 0 e 255 (estremi inclusi)
• c.setFill()
• c.setFill(nome)
• c.setFill(rosso, verde, blu)
Questo metodo imposta il colore di riempimento che verrà usato per disegnare forme
nel pannello c. Il colore può essere specificato per nome o usando i valori delle sue
componenti: rosso, verde e blu. Se non viene specificato alcun argomento, non verrà
usato alcun colore di riempimento.
Parametri: nome, la stringa che indica il nome di un colore
rosso, verde, blu, numeri interi compresi tra 0 e 255 (estremi inclusi)
• c.setHeight(dimensione)
Questo metodo modifica l’altezza (cioè la dimensione verticale) del pannello c.
Parametro: dimensione, un numero intero positivo che indica la nuova dimensione
• c.setJustify(stile)
Questo metodo imposta lo stile di giustificazione dei margini (scelto tra “left”, cioè
incolonnato a sinistra, “right”, cioè incolonnato a destra, e “center”, cioè centrato
orizzontalmente) che verrà usato per disegnare più righe di testo nel pannello c.
Parametro: stile, la stringa che indica lo stile di giustificazione dei margini
• c.setLineStyle(stile)
Questo metodo imposta lo stile (scelto tra “solid”, cioè linea continua, e “dashed”,
cioè linea tratteggiata) che verrà usato per disegnare linee nel pannello c.
Parametro: stile, la stringa che indica lo stile di tratteggio delle linee
• c.setOutline()
• c.setOutline(nome)
• c.setOutline(rosso, verde, blu)
Questo metodo imposta il colore del profilo che verrà usato per disegnare forme
nel pannello c. Il colore può essere specificato per nome o usando i valori delle sue
componenti: rosso, verde e blu. Se non viene specificato alcun argomento, i profili non
saranno colorati.
Parametri: nome, la stringa che indica il nome di un colore
rosso, verde, blu, numeri interi compresi tra 0 e 255 (estremi inclusi)
• c.setWidth(dimensione)
Questo metodo modifica la larghezza (cioè la dimensione orizzontale) del pannello c.
Parametro: dimensione, un numero intero positivo che indica la nuova dimensione
Classe GraphicsImage
• i = GraphicsImage(nomeFile)
• i = GraphicsImage(larghezza, altezza)
Questa funzione crea un nuovo oggetto che può ospitare un’immagine in formato
RGB. L’immagine viene caricata leggendo il file nomeFile (deducendone le
dimensioni) oppure viene creata vuota, con dimensioni uguali a larghezza e altezza.
Parametri: nomeFile, una stringa che contiene il nome di un file in formato GIF
o PPM
larghezza, altezza, le dimensioni della nuova immagine vuota
Restituisce: il nuovo oggetto di tipo “immagine”
• i.clear()
Questo metodo cancella l’intera immagine i e rende trasparenti tutti i suoi pixel,
senza modificare le dimensioni dell’immagine stessa.
• i.copy()
Questo metodo crea una copia dell’immagine i.
Restituisce: il nuovo oggetto di tipo “immagine”, duplicato di quello esistente
• i.getPixel(riga, colonna)
Questa funzione restituisce il colore di uno specifico pixel dell’immagine i. Il colore
viene memorizzato in una tupla contenente i valori delle sue componenti, nell’ordine:
rosso, verde e blu.
Parametri: riga, colonna, le coordinate, orizzontale e verticale, del pixel
• i.getRed(riga, colonna)
• i.getBlue(riga, colonna)
• i.getGreen(riga, colonna)
Questa funzione restituisce la corrispondente componente di colore di uno specifico
pixel dell’immagine i..
Parametri: riga, colonna, le coordinate, orizzontale e verticale, del pixel
Restituisce: la componente di colore richiesta (un numero intero)
• i.height()
Questo metodo restituisce l’altezza (cioè la dimensione verticale) dell’immagine i.
Restituisce: l’altezza dell’immagine
• i.save(nomeFile)
Questo metodo archivia nel file nomeFile una copia dell’immagine i, in formato
GIF.
Parametro: nomeFile, una stringa che contiene il nome del file da scrivere
• i.width()
Questo metodo restituisce la larghezza (cioè la dimensione orizzontale) dell’immagine i.
Restituisce: la larghezza dell’immagine
Il modulo turtle
• backward(distanza)
Questa funzione fa percorrere alla tartaruga la distanza specificata in linea retta, nella
direzione opposta a quella verso cui è rivolta.
Parametro: distanza, la distanza da percorrere, in pixel
• clear()
Questa funzione cancella tutto quanto disegnato dalla tartaruga, senza spostarla.
• forward(distanza)
Questa funzione fa percorrere alla tartaruga la distanza specificata in linea retta, nella
direzione verso cui è rivolta.
• goto(x, y)
Questa funzione porta la tartaruga nella posizione di coordinate (x, y).
Parametri: x, y, le coordinate di una posizione nella finestra (due numeri interi)
• heading()
Questa funzione restituisce l’angolo che descrive la direzione verso cui è rivolta la
tartaruga.
Restituisce: la direzione verso cui è rivolta la tartaruga (un numero in virgola mobile)
• hideturtle()
Questa funzione rende invisibile la tartaruga, i cui successivi spostamenti non
disegneranno nella finestra.
• home()
Questa funzione porta la tartaruga nell’origine delle coordinate, (0, 0), e la orienta
verso est.
• left(angolo)
Questa funzione ruota la tartaruga verso “sinistra” (cioè in senso antiorario) dell’angolo
indicato.
Parametro: angolo, l’angolo di cui ruotare (un numero in virgola mobile)
• pencolor(nome)
• pencolor(rosso, verde, blu)
Questa funzione imposta il colore della penna usata dalla tartaruga per disegnare. Il
colore può essere specificato per nome oppure descritto dalle sue componenti: rosso,
verde e blu.
Parametri: nome, una stringa che indica il nome di un colore
rosso, verde, blu, numeri interi compresi tra 0 e 255 (estremi inclusi)
• pendown()
Questa funzione abbassa la penna, in modo che la tartaruga disegni quando si sposta.
• pensize(spessore)
Questa funzione imposta lo spessore della linea disegnata dalla tartaruga, in pixel.
Parametro: spessore, lo spessore della penna, in pixel (un numero intero)
• penup()
Questa funzione alza la penna, in modo che la tartaruga non disegni quando si sposta.
• reset()
Questa funzione cancella tutto quanto disegnato dalla tartaruga, porta la tartaruga
nell’origine delle coordinate, (0, 0), e la orienta verso est.
• showturtle()
Questa funzione rende visibile la tartaruga, i cui successivi spostamenti disegneranno
nella finestra.
Questa appendice elenca i caratteri Unicode usati più spesso nell’elaborazione di lingue
dell’Europa occidentale.All’indirizzo http://unicode.org è reperibile l’elenco completo
dei caratteri Unicode.
Tabella1
Carattere Sequenza Decimale Codice
Alcuni caratteri
di controllo
di escape
Tab "\t" 9 "\u0009"
Nuova riga "\n" 10 "\u000A"
Invio "\r" 13 "\u000D"
Spazio 32 "\u0020"
Numeri binari
La notazione decimale rappresenta i numeri come potenze di 10, ad esempio:
Non c’è nessun motivo particolare per la scelta del numero 10, a parte il fatto che, stori-
camente, molti sistemi di numerazione sono stati messi a punto da persone che contavano
con le dita delle mani, che sono dieci. Altri sistemi numerici, con base 12, 20 o 60, sono
stati usati da varie culture nel corso della storia dell’umanità, tuttavia i computer usano un
sistema numerico con base 2, perché è molto più facile costruire componenti elettronici
che funzionino con due valori, che possono essere rappresentati da una corrente che
scorre oppure no, piuttosto che rappresentare 10 valori diversi di un segnale elettrico. Un
numero scritto in base 2 viene anche detto numero binario. Ad esempio:
1101binario = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = 8 + 4 + 1 = 13
Per le cifre che seguono il punto (o la virgola) “decimale”, si usano le potenze negative di 2:
In generale, per convertire un numero binario nel suo equivalente decimale, si valutano
e si sommano, semplicemente, le potenze di 2 che corrispondono alle cifre di valore 1.
La Tabella 1 mostra le prime potenze di 2.
100 ÷ 2 = 50 resto 0
50 ÷ 2 = 25 resto 0
25 ÷ 2 = 12 resto 1
12 ÷ 2 = 6 resto 0
6÷2 = 3 resto 0
3÷2 = 1 resto 1
1÷2 = 0 resto 1
0.35 ⋅ 2 = 0.7
0.7 ⋅ 2 = 1.4
0.4 ⋅ 2 = 0.8
0.8 ⋅ 2 = 1.6
0.6 ⋅ 2 = 1.2
0.2 ⋅ 2 = 0.4
Ad esempio, per rappresentare il valore –13 con 8 bit, per prima cosa si cambia il valore
di tutti i bit della rappresentazione binaria di 13, che è 00001101, ottenendo 11110010,
poi si aggiunge 1, per cui –13 = 11110011.
Per sommare numeri interi, alcuni dei quali possono essere negativi, non serve alcuna
regola speciale: semplicemente, si seguono le normali regole dell’addizione in colonna,
con il riporto verso la colonna successiva nel caso in cui la somma delle cifre e del riporto
precedente sia 2 o 3. Ad esempio:
1 1111 111
+13 0000 1101
–13 1111 0011
1 0000 0000
Sono importanti, però, soltanto gli ultimi 8 bit del risultato, per cui +13 e –13 hanno
somma 0, come dovrebbero.
In particolare, la rappresentazione in complemento a due di –1 è 1111...1111, cioè
tutti i suoi bit valgono 1.
Il bit più a sinistra di un numero in complemento a due vale 0 se il numero è positivo
oppure zero e 1 se è negativo.
Tabella 2
L’operazione
a ~a
di negazione unaria 0 1
1 0
Ad esempio, supponete di voler calcolare 46 & 13. Per prima cosa convertite in binario
entrambi i valori: 46decimale = 101110binario (in realtà, essendo un intero a 32 bit, 00000
000000000000000000000101110) e 13decimale = 1101binario. Poi, effettuate l’operazione
sui bit corrispondenti:
0.....0101110
& 0.....0001101
0.....0001100
0.....0000011
Oltre alle operazioni che agiscono su singoli bit, esistono anche due operazioni di scorri-
mento (“shift”) che prendono lo schema di bit di un numero e lo spostano a sinistra o a
destra di un dato numero di posizioni.
Lo scorrimento a sinistra (left shift, che usa come simbolo <<) sposta tutti i bit verso
sinistra, inserendo zeri nei bit meno significativi. Lo spostamento a sinistra di n bit fornisce
lo stesso risultato di una moltiplicazione per 2n. Lo scorrimento verso destra (right shift,
che usa come simbolo >>) sposta tutti i bit a destra, propagando il bit di segno: quindi, il
risultato è uguale a quello della divisione intera per 2n, sia per valori positivi che per
valori negativi.
L’espressione:
1 << n
genera uno schema di bit in cui il solo bit n-esimo vale 1 (contando le posizioni a partire
dalla posizione 0 del bit meno significativo).
Per impostare a 1 il bit n-esimo di un numero, quindi, si può eseguire l’operazione:
x = x | 1 << n
ol Elenco numerato li
li Elemento di elenco
dt Termine da definire
dd Definizione di termine
table Tabella tr
Un’altra struttura sintattica molto utilizzata è l’elenco puntato (bulleted list). Ad esempio:
Python is
• easy to learn
• portable
• free and open source
Ogni elemento dell’elenco è delimitato da una coppia <li> </li> (che sta per “list item”,
cioè, appunto, elemento di un elenco), mentre l’intero elenco, costituito da tutti i suoi
elementi, è delimitato dalla coppia <ul> </ul> (“unnumbered list”, ossia elenco non
numerato, nel senso che gli elementi sono introdotti da punti o altri simboli piuttosto
che da numeri).
Nel codice HTML si possono inserire liberamente spazi e caratteri per andare a capo
(newline), per migliorarne la leggibilità. Ad esempio, il codice che abbiamo visto prima,
che definisce un elenco puntato, potrebbe essere scritto così:
<p>Python is</p>
<ul>
<li>easy to learn</li>
<li>portable</li>
<li>free and open source</li>
</ul>
Si ritiene preferibile aggiungere alcuni attributi al marcatore img, nello specifico la dimensione
dell’immagine e una sua descrizione alternativa:
Tabella 3
Codice Descrizione Simbolo
Alcuni simboli speciali
in HTML < Minore di <
> Maggiore di >
& E commerciale &
" Virgolette “
Spazio ineliminabile
© Copyright ©
Probabilmente vi sarà già successo di realizzare pagine web usando un editor web, che
funziona in modo simile a un word processor e vi consente di scrivere una pagina web
usando la modalità WYSIWYG (what you see is what you get, cioè “quello che vedi è
quello che otterrai”): anche in quel caso sono comunque presenti i marcatori HTML,
che potete vedere caricando il file HTML in un editor di testo. Se vi trovate bene con un
editor web di tipo WYSIWYG non avete nessuna necessità di memorizzare i marcatori
HTML, ma molti programmatori e professionisti dello sviluppo web preferiscono lavorare
direttamente con i marcatori, almeno per rifinire i dettagli delle pagine, perché si ottiene
un controllo più preciso e puntuale.
CAN_VOLUME = 0.335
Le costanti in maiuscolo
Funzioni matematiche
abs(x) Valore assoluto, |x|
round(x) Arrotondamento all’intero più vicino
max(x1, x2, ...) Il maggiore tra gli argomenti
min(x1, x2, ...) Il minore tra gli argomenti
Importazioni
Modulo Elementi importati
from math import sqrt, log
Enunciato condizionale
Condizione
if floor >= 13 : Eseguito quando la condizione è vera
actualFloor = floor – 1
elif floor >= 0 : Seconda condizione (facoltativa)
actualFloor = floor
else :
print(“Floor negative”)
Eseguito quando tutte le condizioni sono false (facoltativo)
Definizione di funzione
Nome della funzione Nome del parametro
def cubeVolume(sideLength) :
volume = sideLength ** 3
return volume Termina il metodo e restituisce il risultato
Stringhe
s = “Hello”
len(s) La lunghezza della stringa: 5
s[1] Il carattere che ha indice 1: “e”
s + "!" Concatenazione: “Hello!”
s * 2 Replicazione: “HelloHello”
s.upper() Restituisce “HELLO”
s.replace("e", "3") Restituisce “H3llo”
Liste
friends = []
Una lista vuota
values = [16, 3, 2, 13]
for i in range(len(values)) :
values[i] = i * i
friends.append(“Bob”)
friends.insert(0, “Amy”)
if “Amy” in friends :
n = friends.index(“Amy”)
friends.pop(n)
else :
Elimina l’n-esimo elemento
friends.pop() Elimina l’ultimo elemento
friends.remove(“Bob”)
Tabelle
table = [[16, 3, 2, 13],
[5, 10, 11, 8],
[9, 6, 7, 12],
[4, 15, 14, 1]] Numero di righe
for row in range(len(table)) : Numero di colonne
for column in range(len(table[row])) :
sum = sum + table[row][column]
Input e Output
name = input(“Your name: “)
age = int(input(“Your age: “))
weight = float(input(“Your weight: “))
print(“You are”, age, “years old.”)
Insiemi e dizionari
cast = { “Luigi”, “Gumbys”, “Spiny” }
audience = set() Un insieme vuoto
if “Luigi” in cast :
cast.remove(“Luigi”)
Grafica
from ezgraphics import GraphicsWindow
Larghezza Altezza
win = GraphicsWindow(400, 200)
c.drawText(x, y, testo)
Elaborazione di file
infile = open(“input.txt”, “r”)
Definizione di classe
class BankAccount :
def __init__(self, initialBalance) : Costruttore
self._balance = initialBalance
Variabile di esemplare
def withdraw(self, amount) :
self._balance = self._balance – amount
Metodi
def getBalance(self) :
return self._balance
checking._balance è privata
Ereditarietà
Sottoclasse Superclasse
class CheckingAccount(BankAccount) :
def __init__(self, initialBalance) : Invoca il costruttore della superclasse
super().__init__(initialBalance)
self._transactions = 0
Variabile di esemplare aggiunta nella sottoclasse
Eccezioni
if amount > balance :
raise ValueError("Amount exceeds balance")
try :
. . .
except IOError : Quando viene sollevata IOError, l’esecuzione riprende da qui
print("Could not open input file.")
except ValueError as exceptObj :
print("Error:", str(exceptObj))
Questo è l’oggetto di tipo eccezione che è stato sollevato