Anteprima
Vedrai una selezione di 7 pagine su 26
Appunti completi di Informatica Pag. 1 Appunti completi di Informatica Pag. 2
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti completi di Informatica Pag. 6
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti completi di Informatica Pag. 11
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti completi di Informatica Pag. 16
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti completi di Informatica Pag. 21
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Appunti completi di Informatica Pag. 26
1 su 26
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

AND TRACING

L’Hand-tracing è un metodo che aiuta a capire se un programma funziona correttamente. Consiste nel

tracciare a mano su un foglio l’evoluzione delle variabili. Crea una tabella delle variabili più importanti e

tiene traccia dei loro valori (con carta e penna). Utilizza il codice (o lo pseudocodice) per tracciare

l’esecuzione del programma e utilizza dati di input di esempio che generino un risultato prevedibile e noto

e testino tutti i rami del codice.

5 V O B

ARIABILI E PERATORI OOLEANI

Nel 1847 George Boole introdusse un nuovo tipo di formalismo logico, basato esclusivamente su enunciati

che potevano essere veri o falsi.

5.1 V ARIABILI BOOLEANE

Una variabile Booleana può solo essere Vera o Falsa (1 o 0). Una variabile booleana è spesso utilizzata

come flag (indicatore) proprio perché può essere solo vera o falsa. bool è un tipo di dato in Python (può

avere i valori True e False). La condizione di un’istruzione if è un valore Booleano.

5.2 O PERATORI BOOLEANI

Ci sono tre diversi operatori Booleani principali: and, or, not.

5.3 L EGGE DI DE MORGAN

La legge di De Morgan spiega come negare una combinazione di and e or:

 è la stessa cosa di

not(A and B) not(A) or not(B)

è la stessa cosa di

 not(A or B) not(A) and not(B)

Pagina [12]

CICLI

1 C

ICLO WHILE

I cicli sono utilizzati per ripetere diverse volte lo STESSO blocco di istruzioni a che una «condizione di ciclo»

rimane vera (True). In Python, un ciclo esegue istruzioni FINTANTO CHE LA CONDIZIONE È VERA. Per esempio:

balance = 10.0

TARGET = 100.0

year = 0

RATE = 5

while balance < TARGET:

year = year + 1

interest = balance * RATE/100

balance = balance + interest

1.1 C ICLI CONTROLLATI DA UN CONTATORE

Un ciclo while controllato da un contatore conta il numero di ripetizioni effettuate e si ferma quando sono

state completate un numero predefinito di iterazioni.

1.1.1 Off-by-One Errors

Il contatore può essere inizializzato a 0 o a 1, ma in informatica un contatore si inizializza solitamente a 0.

1.2 C ICLI CONTROLLATI DA UN EVENTO

Un ciclo while controllato da una condizione che, prima o poi, diventa falsa. Il numero di iterazioni non è

noto in anticipo.

1.3 I NTERRUZIONE ANTICIPATA DI UN CICLO

1.3.1 Break

Se all’interno di un ciclo si inserisce l’istruzione break il ciclo viene interrotto senza completare l’iterazione

corrente, anche se non sono state fatte tutte le iterazioni necessarie. L’esecuzione continua con le istruzioni

successive al ciclo.

1.3.2 Continue

Se all’interno di un ciclo si inserisce l’istruzione continue non viene completata l’iterazione corrente. Il ciclo

continua normalmente con l’iterazione successiva (senza terminare quella corrente).

2 V

ALORI SENTINELLA

Quando si legge una sequenza di input, spesso è necessario un metodo per indicare la fine della

sequenza. Quando non si sa quanti elementi ci sono un una lista, si può utilizzare un carattere o un valore

speciale per identificare l’ultimo della lista. Questo valore si chiama “sentinella”, che identifica la fine dei

data ma NON FA PARTE DEI DATI STESSI. Ad esempio: Per input di numeri interi positivi, si può ad esempio

usare 0 o -1. Pagina [13]

3 C

ICLO FOR

Il ciclo for…in serve a iterare su tutti i valori di un qualsiasi contenitore. Un contenitore è un oggetto (come

una stringa) che può memorizzare un insieme di elementi. Python ha diversi tipi di contenitori:

Una stringa è un contenitore di caratteri

 Una lista è un contenitore di valori arbitrari (numerici, stringhe, liste, …)

 Un file è un contenitore di linee di testo

3.1 C R

ONTENITORE ANGE

È un contenitore speciale di una sequenza di numeri consecutivi. Si genera con la funzione che

range(N)

crea una sequenza di interi da 0 a N-1. Quindi un for con un è equivalente a un ciclo while

range()

controllato da un contatore.

3.2 C ’

ICLARE SULL INDICE E VALORE

La funzione enumerate trasforma un contenitore un qualsiasi contenitore in una sequenza di coppie.

for (indice, valore) in enumerate(nome):

4 G

ENERAZIONE NUMERI CASUALI

Python mette a disposizione un generatore di numeri casuali che produce numeri che sembrano casuali. I

numeri sono in realtà pseudo-casuali. Sono infatti estratti da una sequenza di numeri non consecutivi che

non si ripetono (a meno di continuare nella sequenza per molto tempo). Il generatore di numeri casuali si

trova nel modulo random from random random

import

La funzione ritorna un numero compreso tra 0 e 1. Invece la funzione ritorna un

random() randint(a,b)

numero intero compreso tra a e b. Pagina [14]

FUNZIONI

Le funzioni sono come ‘scatole nere’: si passa alla funzione ciò che le serve per eseguire il suo compito e si

ottiene il risultato. Una funzione è una sequenza di istruzioni a cui viene dato un nome. Si invoca (o

chiama) una funzione per eseguire le sue istruzioni. Quando una funzione termina, il risultato ottenuto è

restituito dalla funzione e può essere usato in un’espressione.

1 A RGOMENTI

I valori che passiamo alle funzioni sono detti argomenti dell’invocazione di una funzione. Le funzioni

possono ricevere diversi argomenti ed è anche possibile avere funzioni senza argomenti.

1.1 P

ASSAGGIO DEI PARAMETRI

Le variabili parametro (parametri formali) ricevono gli argomenti (parametri effettivi o parametri attuali)

dell’invocazione della funzione. Gli argomenti possono essere il valore corrente di una variabile o

un’espressione (funzione o lambda). La variabile parametro è dichiarata nella funzione invocata.

1.2 P

ARAMETRI POSIZIONALI O NOMINALI

Nella chiamata a funzione, gli argomenti possono venire associati alle variabili parametro in due modi

POSITIONAL PARAMETERS: associo la posizione del dato all’argomento. Il primo argomento passato

 andrà ad inizializzare la prima variabile parametro, il secondo la seconda, e così via

(comportamento di default).

NAMED PARAMETERS: uso il nome della variabile parametro per specificare a chi assegnare

 l’argomento.

1.3 V ALORI DI DEFAULT

Le variabili parametro possono avere dei valori di default, che vengono usati se, durante la chiamata,

nessun argomento è assegnato a tale parametro. Ad esempio:

def complex(real = 0.0, imag = 0.0)

1.4 L ISTE DI ARGOMENTI VARIABILI

Viene utilizzata per permettere di passare un numero variabile di argomenti a una funzione (e non è

associata ad un nome). Una lista di parametri di questo genere è sempre posizionale. La sintassi è *args

nella definizione di funzione.

2 R ESTITUZIONE DEI VALORI

L’ “output” che la funzione calcola è detto valore restituito. La funzione restituisce un solo valore. Se volessi

restituire più valori, potrei aggirare la limitazione restituendo una lista o una tupla. Alcune funzioni non

hanno bisogno di restituire alcun valore. L’istruzione return termina immediatamente la funzione e passa il

valore di ritorno direttamente alla funzione che l’ha invocata. Tutte le diramazioni del flusso di esecuzione

di una funzione devono restituire un valore, portando la funzione a incontrare un enunciato return.

3 I MPORTARE MODULI

Alcune librerie sono disponibile per il download dal repository Python Package Index (PyPI).

pip install module

Pagina [15]

4 R EALIZZAZIONE DI UNA FUNZIONE

Per scrivere (‘definire’) una funzione bisogna:

Scegliere un nome per la funzione

 Dichiarare una variabile per ogni argomento

 Mettere assieme tutte queste informazioni con la parola riservata def per formare la prima riga

 della definizione della funzione

L’istruzione def apre un nuovo blocco (compound statement), all’interno del quale scriveremo le istruzioni

che compongono il corpo della funzione.

5 L A FUNZIONE MAIN

Quando si definiscono e usano funzioni in Python, è bene che tutte le istruzioni del programma si trovino

all’interno di funzioni, indicandone una come punto di partenza dell’esecuzione. Qualsiasi nome può essere

per il punto di inizio, ma si sceglie per convenzione ‘main’ siccome è un nome usato in altri linguaggi molto

diffusi. Ovviamente, serve un’istruzione nel programma che invochi la funzione main. In generale,

l’invocazione della funzione main:

Dovrebbe essere eseguita se il programma è in esecuzione in modalità standalone

 Non dovrebbe essere eseguita se il programma è importato, come modulo, in un programma più

 ampio. Bisogna controllare la variabile speciale che contiene il nome del modulo (o la

__name__,

stringa ‘__main__’ se in modalità standalone)

if __name__ == '__main__':

# call the main function if we are running in

# standalone mode

# don’t call it if we are imported as a module

main()

Per evitare confusione, le variabili di sistema hanno nomi che iniziano e finiscono con doppio underscore.

Sono detti nomi “dunder” (che sta per double-underscore).

6 A MBITO DI VISIBILITÀ DELLE VARIABILI

Le variabili possono essere dichiarate:

Dentro una funzione: conosciute come ‘variabili locali’ e disponibili solo all’interno della

 funzione

Fuori dalla funzione: talvolta detta ‘variabile globale’ e può essere usata e modificata in

 qualsiasi funzione.

6.1 V ARIABILI GLOBALI

Sono variabili che sono definite all’esterno delle funzioni ed è visibile a tutte le funzioni. Qualsiasi funzione

che voglia aggiornare una variabile globale deve includere una dichiarazione global.

Pagina [16]

LISTE E TABELLE

1 L ISTE

Una lista è una struttura dati versatile e dinamica, che contiene un numero variabile di elementi, di

qualunque tipo, a cui si può avere accesso tramite la loro posizione (indice).

1.1 C REAZIONE DI UNA LISTA

Assegnare ad una variabile una nuova lista con l’operatore di indicizzazione [].

1.2 A CCESSO ALLE LISTE

Una lista è una sequenza di elementi, ognuno dei quali ha una posizione o indice che è un numero intero.

Per accedere ad un elemento della lista, specificare quale indice si vuole usare attraverso l’operatore di

indicizzazione (allo stesso modo in cui si accede ad un singolo carattere in una stringa). Gli indici partono

da 0.

1.2.1 Differenze con le stringhe

Sia le liste che le stringhe sono sequenze e l’operatore viene usato per accedere ad un elemento in

[]

qualsiasi sequenza. Esistono due differenze fra liste e stringhe:

Le liste possono contenere valori di ogni tipo, invece le stringhe sono sequenze

Dettagli
A.A. 2022-2023
26 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher maurizio.costa.03 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Torino o del prof Benso Alfredo.