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

CHIAVE

La chiave è il valore che permette di identificare univocamente uno ed un solo valore (es. matricola)

Da chiave risalgo a valore, non viceversa.

Nelle liste le chiavi sono gli interi, le posizioni e qualsiasi tentativo di usare altri tipi di dati come indice produce

un errore. I dizionari sono come le liste, ma possono usare come indice anche valori non numerici:

- stringhe

- tuple

- valori numerici

- valori booleani

Ma non possono essere usati tipi come liste, dizionari, strutture di dati complessi che mutano nel tempo.

Da una chiave risalgo al valore corrispondente, non possono esserci duplicazioni di chiavi in un dizionario.

Posso assegnare un valore diverso ad una chiave gia esistente, sovrascrivendo il vecchio valore.

Posso aggiungere nuove coppie chiave-valore:

dizionario = {“chiave1” : “valore1” , “chiave2” : “valore2” }

dizionario[“nuova_chiave”] = ”nuovo_valore”

Lunghezza dizionario = numero di coppie

len(dizionario)

Metodi per i dizionari:

.keys() restituisce la lista delle chiavi contenute nel dizionario

.values() restituisce la lista dei valori contenuti nel dizionario

Oppure posso farlo in un altro modo ciclo for.

CICLO FOR

for elemento in iteratore:

…. lista comandi

Nei dizionari, è utile per stampare a video in maniera immediata i valori:

for parola in diz:

print diz[parola] stampa i valori associati ad ogni chiave

“parola” diventa un insieme contenente tutte le chiavi, ad ogni ciclo parola assume una chiave diversa e viene

visto a video il valore di quella chiave. L’insieme iteratore però non ha un ordinamento, le chiavi, i suoi

elementi non sono ordinabili, a differenza delle liste.

Nei dizionari, per stampare chiavi: Nelle liste, per stampare gli elenti:

dizionario = {“testo”: a , “testo1” : b , “testo2”: c .. } lista = [1, 2, 3, ..]

for elemento in dizionario: for elemento in lista:

print elemento testo testo1 testo2 print elemento 1 2 3 ..

 

(il ciclo for opera sulle chiavi, non sui valori) Nelle tuple, per stampare gli elementi:

Nelle stringhe, per stampare lettere: tupla = (1, 2, 3, ..)

stringa = “testo” for elemento in tupla:

for elemento in stringa: print elemento 1 2 3 ..

print elemento t e s t o

Tramite il ciclo for, posso costruire un iteratore per eseguire un numero prefissato di iterazioni range()

Lo posso usare per dare valore ad una variabile iterabile = range (start, stop, step)

- start = valore di partenza

- stop = valore massimo (necessario)

- step = incrementi con cui vengono costtruiti gli elementi

Oppure nel ciclo for posso scriverlo così For contatore in range(x):

Significa che ripete il ciclo x volte, e posso usare come variabile quel contatore all’interno del ciclo, viene

implementato da solo.

Es.

Proprietà principali strutture dati:

STRUTTURE DATI MULTIDIMENSIONALI

Liste bidimensionali tabella con tante righe e tante colonne.

Una lista bidimensionale può essere considerata una lista di liste organizzate sequenzialmente:

M[0] = A[0] A[1] A[2] A[3] … A[n-1]

M = A M = M[0] M[1] = B[0] B[1] B[2] B[3] … B[n-1]

B M[1] …

C M[2] M[m-1] = Z[0] Z[1] Z[2] Z[3] … Z[n-1]

D M[3] ovvero:

… …

Z M[m-1] M[0] = M[0][0] M[0][1] M[0][2] M[0][3] … M[0][n-1]

M[1] = M[1][0] M[1][1] M[1][2] M[1][3] … M[1][n-1]

M[m-1] = M[m-1][0] M[m-1][1] … M[m-1][n-1]

Il primo valore M[0][0] è il valore della riga, il secondo M[0][0] è delle colonne.

M[i][j] : riga i , colonna j

Somma per ogni colonna di una riga = M[0][0] + M[0][1] + M[0][2] + M[0][3] + …

Somma per ogni colonna di ciascuna riga = M[0][0] + M[0][1] + M[0][2] + M[0][3] + …

= M[1][0] + M[1][1] + M[1][2] + M[1][3] + …

= M[2][0] + M[2][1] + M[2][2] + M[2][3] + …

Somma per ogni riga di una colonna = M[0][0] + M[1][0] + M[2][0] + M[3][0] + …

Somma per ogni riga di ciascuna colonna = M[0][0] + M[1][0] + M[2][0] + M[3][0] + …

= M[0][1] + M[1][1] + M[2][1] + M[3][1] + …

= M[0][2] + M[1][2] + M[2][2] + M[3][2] + …

Posso fare sia lista di liste, che lista di tuple, che dizionari di tuple

FUNZIONI

La funzione può essere vista come un nome attribuito ad un insieme di istruzioni:

- codice (insieme di istruzioni) indipendente dalla parte rimanente del programma

- filosofia: scrivi il codice di una funzione una volta, riutilizzalo più volte

Caratteristiche di una funzione:

- esegue un compito specifico

- la funzione può essere chiamata (invocata, attivata) in diversi punti del programma di cui fa parte come se

fosse una singola istruzione

Vantaggi delle funzioni

Attraverso il riutilizzo, facilitano la scrittura del codice:

- all’interno di uno script aiutano a ridurre la duplicazione del codice

- E’ possibile riutilizzare una funzione in uno script diverso da quello in cui (la funzione) è stata scritta

- E’ possibile utilizzare funzioni già scritte da altri, senza conoscerne l’implementazione

Migliorano :

- la comprensione del codice

- l’organizzazione

- le operazioni di manutenzione ed evoluzione

Output Parametri (in input)

Funzione

 

Una funzione in Python

- può essere chiamata ad operare più volte su dati diversi

- può restituire o non restituire un risultato

Le funzioni possono essere composte:

COME CREARE UNA FUNZIONE

La creazione di nuove funzioni è una fra le peculiarità più utili di un linguaggio di programmazione

Può essere usato qualsiasi nome per una funzione, fatta eccezione per le parole riservate di Python

Una funzione deve essere definita prima di essere usata.

La sintassi per la definizione di una funzione in python è:

Le funzioni possono essere definite in qualsiasi punto del programma.

Unica condizione: una funzione deve essere definita prima di poter essere usata.

Per evitare problemi di questo tipo conviene dichiarare tutte le funzioni all’inizio del file.

Quando definisco una funzione non conosco a priori i valori sui quali dovrà operare PARAMETRI.

Parametri formali = nella definizione uso i parametri formali per dare un nome ai dati che ancora non conosco

Parametri attuali = valori reali collegati ai parametri formali.

E’ possibile dichiarare delle variabili all’interno delle funzioni.

Al termine della funzione, le variabili dichiarate internamente (per es. risultato) cessano di esistere

E’ opportuno dare alle variabili, dichiarate nelle funzioni, nomi diversi dai nomi delle variabili dichiarate nel

corpo principale del programma.

IMPORTARE ED UTILIZZARE UNA FUNZIONE DALL’ESTERNO

Modulo: un file .py con all’interno una collezione di funzioni pronte per l’uso.

Package: un insieme di moduli che collaborano tra loro per svolgere compiti complessi.

E’ una directory contenente uno o più moduli. La directory di un package deve avere un file

particolare: __init__.py per evitare che una directory contenente alcuni script .py venga

scambiata per un package.

Per poter utilizzare le funzioni di un modulo dobbiamo dire all’interprete di caricare il

modulo in memoria. Questa operazione viene chiamata importazione.

Importare un modulo (presente nella dir. corrente)

Localizzazione di moduli nel file system

Inizia una ricerca in diverse directory, secondo l’ordine descritto qui di seguito. Non appena viene trovato un

file itamat.py, la ricerca termina.

- directory di lavoro corrente (nel ns caso, la directory in cui si trova il file esempiouso.py)

- directory in cui si trovano i moduli e i package della libreria standard di python

Libreria di Python

Il programma di installazione di python, oltre ad installare l’interprete, installa anche la libreria standard di

python, un insieme di package e moduli (pronti per essere utilizzati), ognuno dedicato ad un compito specifico.

La libreria standard di Python è molto estesa: - operazioni matematiche

- gestione di oggetti grafici

- operazioni sul file system

Se vogliamo un modulo non presente nella libreria standard, basta recuperarlo e installarlo nel computer.

Importare un modulo della libreria standard

I moduli della libreria standard possono essere importati anche se non risiedono nella directory di lavoro

corrente. Per utilizzare una funzione di un modulo dobbiamo specificare il nome del modulo che la contiene e

il nome della funzione separati da un punto. Questo formato è chiamato notazione punto.

Es.

Nella documentazione ufficiale del linguaggio python, oltre alla sintassi del linguaggio vengono descritti in

dettaglio i contenuti della liberia standard. Una modifica alla libreria standard determina una variazione

della versione di python.

Package Manager

In aggiunta alla libreria standard, è possibile installare dei pacchetti aggiuntivi: ( Conda)

- Posso usare un modulo o un package copiandolo nella mia directory di lavoro corrente. In questo modulo,

però altri utenti non riuscirebbero ad utilizzarlo.

- L’installazione manuale di un pacchetto nel computer (tutti gli utenti) può essere un’operazione complicata.

- Per questo motivo sono stati introdotti i Package Manager.

Il package manager è un software che si occupa di installare pacchetti aggiuntivi, rendendoli disponibili per

tutti gli utenti di uno specifico computer.

Molti dei package manager esistenti, scaricano pacchetti da fonti accessibili via internet:

- Esistono diverse fonti di pacchetti aggiuntivi (sia liberamente scaricabili, sia a pagamento).

- Una delle più grandi fonti di pacchetti python scaricabili è il Python Package Index. ://pypi.python.org/pypi

- Il contenuto della libreria e il tipo di package manager costituisce la maggior differenza tra le diverse

distribuzioni del linguaggio python.

PARAMETRI DI FUNZIONI

Parametri - Formali

- Attuali

Definizione di funzione

Modalità di passaggio dei parametri

Quando si richiama una funzione, vengono trasferiti i valori dai parametri attuali ai parametri formali della

funzione. Il passaggio di parametri può avvenire in due modalità distinte:

● Passaggio per valore (o per copia): il parametro formale è una copia del parametro attuale se la funzione

modifica il contenuto del parametro formale, si modifica la copia e non l’originale

● Passaggio per riferimento: il parametro formale è collegato direttamente al parametro attuale modificando il

valore del parametro formale si altera anche il valore del parametro attuale

La differenza si nota quando, all’interno di una funzione, viene modificato un parametro formale

● (nel passaggio per valore) il corrispondente

Dettagli
Publisher
A.A. 2019-2020
30 pagine
8 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher aina.belloni 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à Università degli Studi di Milano - Bicocca o del prof Cesarini Mirko.