Il 0% ha trovato utile questo documento (0 voti)
3 visualizzazioni

Informatica - Python

Il documento fornisce un'introduzione alla programmazione in Python, coprendo concetti fondamentali come hardware e software, algoritmi, e la sintassi del linguaggio. Viene spiegato il ruolo delle variabili, delle costanti e degli operatori aritmetici, oltre a fornire informazioni su come testare e pianificare algoritmi. Infine, si discute l'importanza delle librerie e delle funzioni predefinite in Python per facilitare lo sviluppo del software.

Caricato da

classe 1 A
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
3 visualizzazioni

Informatica - Python

Il documento fornisce un'introduzione alla programmazione in Python, coprendo concetti fondamentali come hardware e software, algoritmi, e la sintassi del linguaggio. Viene spiegato il ruolo delle variabili, delle costanti e degli operatori aritmetici, oltre a fornire informazioni su come testare e pianificare algoritmi. Infine, si discute l'importanza delle librerie e delle funzioni predefinite in Python per facilitare lo sviluppo del software.

Caricato da

classe 1 A
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 31

PYTHON -

TEORIA

1 SEMESTRE
2024/225
P1 : La PROGRAMMAZIONE
INTRODUZIONE Al SISTEMI DI ELABORAZIONE
DEFINIZIONE DI INFORMATICA
INFORMATICA SCIENZA CHE SI OCCUPA DELLA RAPPRESENTAZIONE E MANIPOLAZIONE DELL'INFORMAZIONE .

HARDWARE E SOFTWARE
HARDWARE
Comprende GLI ELEMENTI FISICI DI UN SISTEMA DI ELABORAZIONE

SOFTWARE
Tipicamente Sviluppato sotto forma di applicativo (App)
LaProgrammazione È L'ATTO di PROGETTARE ED IMPLEMENTARE I PROGRAMMI SOFTWARE

ESEGUIRE UN PROGRAMMA
PROGRAMMI E DAT SONO MENORIZZATI IN FORMATO DIGITALE
.

PER POTER ESEGUIRE UN PROGRAMMA, QUESTO DEVE ESSERE PORTATO IN MEMORIA , DOVE LA CPU POSSA LEGGERLO

La CPU ESEGUE IL PROGRAMMA UN'ISTRUZIONE PER VOLTA

PROGRAMMARE
CONSISTE NELLO SCRIVERE UN FILE SORGENTE CHE DESCRIVE LA SOLUZIONE AL PROBLEMA CONSIDERATO. IN GENERALE ,

NON ESISTE UN'UNICA SOLUZIONE /POSSONO ESSERE MOLTEPLICI

ALGORITMO
DEFINIZIONE
DESCRIZIONE PASSO-PASSO DI COME RISOLVERE UN PROBLEMA

· UNA Sequenza Di Azioni Da Compiere Per Svolgere IL COMPITO DATO , E RAGGIUNGERE UN OBBIETTIVO SPECIFICO .

· NECESSARIE SKILL DI PROBLEM SOLVING

CARATTERISTICHE
· NON AMBIGUO : La PRECISIONE È DELLA MASSIMA IMPORTANZA
·
ESEGUIBILE : L'ALGORITM DEVE POTER ESSERE SLOLTO

· TERMINA : PRIMA O POI DEVE FERMARSI

LINGUAGGI
LIVELLI DI ASTRAZIONE

ESCRIPT ,
PITA.

ASSEMBLER
·
GLI ELEMENTI SONO ISTRUZIONI MILBOARCHITETTURALI

· FORTEMENTE DIPENDENTI DALL'HARDWARE


· ES . ASSEMBLY (INTEL), ...
ISTRUZIONI
· PSEUDJ-ISTRUZIONI : Non CORRISPONDONO AD UN EFFETTIVI CODICE ESEGUIBILE

· ISTRUZIONI ELEMENTARI: OPERAZIONI CHE CORRISPONDONO DIRETTAMENTE AD SPERAZIONI HARDWARE

· ISTRUZIONI Di CONTROLL del Flusso : Permettono L'ESECUZIONE Di OPERAZIONI COMPLESSE , CONIBLUNDO L'ESECUZIONE DI ISTRUZIONI ELEMENTARI .

Costruire Casi di PROVA


PROBLEM SOLVING TEST
· Per verificare La correttezza di Un programma , Occorre Testarlo leLaudancol
· NESSUN TEST Sarà Mal completo al 10%, Ma Dovrebbe Coprire TriTi I POSSIBILI COMPORTAMENTI DEL PROGRAMMA

·
Cercare di OTTENERE UNA COPERTURA COMPLETA DI TUID I PUNTI DI DECISIONE /ALTERNATIVE.
PIANIFICARE L'Algoritmo
progettare
·
Cercare di fare una stima Magionevole del Tempo NECESSARIO A
:PRESTADESCRIVERETALE CIT

· LASCIARE SEMPRE DEL TEMPO EXTRA PER PROBLEMI IMPREVISTI

FLOWCHART
DIAGRAMMI DI FLUSSO
UN DIAGRAMMA DI FLUSSO MOSTRA La STRUTTURA DELLE DECISIONI E DELLE ATTIVITÀ NECESSARI A RISOLVERE UN PROBLEMA

SIMPLE
ELEMENTI PRINCIPALI : TASK INPUT/OUTPUT CONDIZIONE
TRUE

FALSE

I FLONChart POSSONO Essere DISEGNAT A MANO


,
con APPLICAZIONI Di DISEGNO oppure PROGRAMMI DIDATTICI APPOSITI (FLONGOMIAM)
1NTRODUZIONE A PYTHON
SINTASSI SEMPLICE ATTINGE DATriTI GLI ALTRI LINGUAGG A 360
· PROGETTATO Da GUIDO VAN ROSSUM NEL 180 : Che

d E Un Linguaggio INTERPRETATO ITEST E SVILUPPO BREVI PROGRAMM Più SEMPLICE) .

· I PROGRAMMI PYTHON SONO ESEGUITI DALL'INTERPRETE PYTHON /LEGGE PROGRAMMA E LO ESEGUE).

AMBIENTI DI PROGRAMMAZIONE
usando un sistema Integrato di sviluppo (ide)
· Ci sono Vari modi per creare un
programma
USANDO Un SEMPLICE EDITOR DI TESTO
IDE
·
Fornisce Supporto al PROGRAMMATORE CON : NUMERI LINEA CODICE , COLORAZIONE SINTASSI , INDENTAZIONE AUTOMATICA DEL CODICE , EVIDENZIAZIONE DEGLI ERRORI DI SINTASSI,

COMPLETAMENTO AUTOMATIC DEL NOMI.

·
FINESTRA DI OUTPUT : Mostra L'OUTPUT ITEStValel Generato DAL PROGRAMMA

·
DEBUGGER: STRUMENTI DI AUSILIO ALLA RICERCA DEGLI ERRARI GILI NEL PROGRAMMA

EDITOR DI TESTI
5 DEVE SALVARE IL FILE CON ESTENSIONE . PY ED ESEGUIRLO IN UNA FINESTRA DI COMANDO

CARATTERISTICHE PY
· DISTINZIONE MANUSCLE/MINUSCLE

· IMPORTANTE L'INDENTAZIONE

MA
·PERCOMMENTARE
BASTA ANTEPORE AD IN

& FUNZIONA come La CPU

IL Compilatore LEGGE Il PROGRAMMA E GENERA LE ISTRUZIONI BINARIE (BYTECODE ,


SEMPLICI ISTRUZIONI PER La MACCHINA VIRTUALE PYTHON
PROGETTO US . PROGRAMMA US . FILE
PROGRAMMA
· = Composto leventualmentel di Più FILE

· GLI IDE PERMETTONO DI RAGGRUPPARE UN INSIEME DI FILE CORRELAT IN UN "PROGETTO


· OGNI VOLTA Che Vogliamo Creare Un Nuovo Programma Dovremo : Creare
, Un Nuova Progetto E Creare UNO O Più FILE PY ALLINTERNO
MODALITA' INTERNITIVA DI PY
· L'INTERPRETE DI PY NORMALMENTE CARICA UN INTERN PROGRAMMA ED ESEGUE LE ISTRUZIONI IN ESSO CONTENUTE

· In ALTERNATIVA : IN MADO INTERATTIVO ,


PY Può ESEGUIRE UN'ISTRUZIONE PER VOLTA

SINTASSI
↑UNZIONI
· Una Funzione E un INSIEME DI ISTRUZIONI KON un Nome) Che SVOLGE Un Compito (ASk) PARTICOLARE

Prinz) ,
FUNZIONE ARGOMENTI/PARMETRI
· Per Chiamare Una funzione In pi Occorre SPECIFICARE : IL Nome , GLI ARGOMENTI DI CUI NECESSITA RACCHIUSI NELLE (1 E SEPARAM DA ,
SE PIÙ DI UNO .

STRINGHE
UNA SEQUENZA DI CARATTERI RACCHIUSI TRA APICI E VIRGOLETTE È CHIAMATA STRINGA .

ERRORI
D) COMPIUZIONE /SINTASSI A TEMPO DI ESECUZIONE (RUN-TIME) /LOGICI
· SCRITTURA MalUSCLE
, ,
PUNTEGGIATURA · IL PROGRAMMA VIENE ESEGUITO , MA NON PRODUCE IL RISULTATO CORRETTO
· ORDINE ISTRUZIONI, CORRISPONDENZA PARENTESI
· IL COMPILATORE NON CREA ALCUN PROGRAMMA ESEGUIBILE · IL PROGRAMMA PUS' ANDARE IN CRISH

·
CORREGGERE IL PRIMO ERRORE EVIDENZIATO E RI-COMPIUIRE · Sono I più Difficili Da Trovare E CORREGGERE
· SOLITAMENTE RIVEATI ED EVIDENZIATI DIRETTAMENTE DALL'IDE
P2 : NUMERI E STRINGHE

VARIABILI
DEF : UNA VARIABILE È UNA ZONA di MEMORIA DOTATA DI UN NOME In UN PROGRAMMA CHE FARIFERIMENTO AD UN VALORE SPECIFICO

Ci SonoDiversi Tipi di Valori Ciascuno Usato Per Memorizzare Cose DIVERSE


,
ES
5) DEFINISCe 2 1
.

Una variabile DICENDO ALL'INTERPRETE : IL NOME SCELTO ED IL VAGREINIGALE =

SI USA Un'ISTRUZIONE Di ASSEGNAZIONE 1 )


= PER ASSEGNARE UN VALRE ALL VARIABILE DCOPIA IL VALORE ALL DX DEL SEGNO NELLA VARIABILE A SX (NON CONFRONTO
VARIABILE PUÒ ESSERE ASSEGNATA A DIVERSI VALORI
1) TIP È ASSOCIATO AL VALRE E NON ALL VARIABILE D-INT = NUMERI INTER QUINDI UNA
DI DIVERSOTIPO , IN DIVERSE PARTI DEL PROGRAMMA
- FLAT = NUMERI CON PARTE FRAZIONARIA
-
STRING = SEQUENZA DI CARATTERI

BISOGNA DEFINIRE le Inizializzare) UNI variabile Prima di USARLA : Deve Essere DEFINITA DA QUALCHE PARTE SOPRA La LINEA Di CODICE DOVE La Si USAPER La

PRIMA VOLTA

Se Si USA UNA VARIABILE ED ESSA È DI UN TIPO NOW PREVISTO ,


IL PROGRAMMA DARD ERRORE

QUANDO SI USA L'OPERATORE "t" CON STRINGHE ,


IL SECONDO ARGOMENTO VIENE CONCATENATO ALLA FINE DEL PRIMO, MA ENTRAMBI GLI ARGOMENTI DEVONO ESSERE STRINGHE

NOMI
I NOMI DELLE Variabili Devono Iniziare CN Una LETTERAO CON Il CARATTERE ) ( ,
I Successivi Possono essere Lettere, NUMERI O UNDERSCORE

Non Si Possono Altri Simboli


Usare o Gli SPAZI PREFERITO

EVENTUALI PAROLE VANNO NOMEI-homez oppure home Nome


SEPARATE SECONDO LA CONVENZIONE

NON UTILIZZARE LE PAROLERISERVATE' DI PYTHON


Consigliabile SCEGLIERE
È UN NOME DESCRITTIVO PER LE VARIABILI .

COSTANTI
UNA COSTANTE È Una VARIABILE Il CUI Valore Non andrebbe MODIFICATO DOPO CHELE È STATO ASSEGNATO UN VALRE INIZIALE (ANCHE Se DY L PERMETTE) .
È una buona Norma Usare
Le maluscle Per Nominare Le COSTANTI

COMMENTI
È Bene UTILIZZARE COMMENTI ALL'INIZIO DI OGNI PROGRAMMA E CHIARIRE I DETTAGLI DEL CODICE

I COMMENTI SONO D'AIUTO AGLI ALTRI E UN MODO PER TENERE TRACCIA DEL RAGIONAMENTO

Il compilatore Ignora i commenti Preceduti Da #1 .

ARITMETICA
OPERATORI ELEMENTARI
· ADDIZIONE D

· SOTTRAZIONE-D-
*
& MOLMIPLICAZIONE -D

· DIVISIONE D RESTITUISCE SEMPRE UN FLOAT

INTERA-D// D RESTITriSCE Sempre UN INT lIGNORA PARTE FRAZIONARIA)


& DIVISIONE

% * RESTITUISLE IL RESTO di UNA DIVISIONE


· MODULO
**
& POTENZAD

USO PARENTESI NELLE ESPRESSIONI

PRECEDENZA : PARENTESI) POTENZE) MOLTIPLICAZIONI/DIVISIONI S ADDIZIONI ISOTTRAZIONI


SE SI USANO NUMERI INTERI E A VIRGOLA MOBILE IL RISULTATO SAM IN VIRGOLA MOBILE
.
,

SE SI USANG STRINGHE E NUMERI INSIEME VERRE RESTITUITO UN ERPRE .

FUNZIONI
MAGGIOR PARTE DELLE FUNZIONI RESTITUISCE UN VALORE CHE PUÒ ESSERE USATO IN UN'ESPRESSIONE O SALVATO IN UNA VARIABILE .

MATEMATICHE PREDEFINITE
abs(x) & RESTITUISCE IL VALORE ASSOLUTO DI X

round (x) -D RESTITUISCE X INTERO


Vound(X M) -ARESTITUISCE
,
X CON M CIFre DEZIMALI

max (X Xm) DRESTITUISCE


,
. ..
, IL VALRE MASSIMO TRA GLI ARGOMENTI
min (X1 , ..., Xm) -DRESTITUISCE IL Vabre MINIMO TRA GLI ARGOMENTI

LIBRERIEDI PY (MODULI
È UNA RICCOLTA DI CODICE , SCRITTO E
UNA LIBRERIA COMPILATO DA TERZI ,
CHE È PRONTO ALL'USO IN UN PROGRAMMA

UNA LIBRERIA STANDARD È UNA LIBRERIA CHE SI CONSIDERA PARTE DEL LINGUAGGIO ED È INCLUSA IN QUALSIASI AMBIENTE DI SVILUPPO PY
FUNZIONI ETIPI di Dati Correlati SONO RAGGRUPPATI NELLO STESSO MODULO
LE LIBRERIE SONO ORGANIZZATE In MODULI :
↓ LE FUNZIONI DEFINITE In Un MODULO DEVONO ESSERE ESPLICITAMENTE CARICATE IN UN PROGRAMMA PRIMA CHE QUESTO LE POSSA UTILIZZARE
· FUNZIONI STANDARD : SEMPRE DISPONIBILI
· LIBRERIA STANDARD : PARTE DI OGNI INSTALLAZIONE PY ORGANIZZATE IN MODULI OGNI MODULO CONTENE
,
Più FUNZIONI , PRIMADI USARE La ,
FUNZIONE
,
BISOGNA IMPORTARE IL MODULO

· LIBRERIE ADDIZIONALI : NON FANNO parte Di PY DEVONO Essere SCARICATE


,
/INSTALLATE WEL PROGETTO E POL IMPORTATE
.

MODULI
2) sono 3 Modi per Importare Le Funzioni Dal Moduli : 1 .
from Modulo import 81 81 83 .
, , ...
DIMPORTALE FUNZIONI On 81 ,
,
.

. from modulo import


2 *
d Importa Tutte Le funzioni Del MODULO

. importn
3 Modulo dimporta tutte Le funzioni del Modulo

MATH *
per invocare ogni funtane sarà Necessario Modulo . fa)...
Sort(x) -D MADICE QUADRATA DI X

↓ runc(x) -DRESTITUISCE PARTE INTERADI X

cos(x) ,
sin(x) , tan()dfunzioni goniomentiche linsidiani
exp(x) =
Dex

degrees (x)_Converte X Da red a


o

Vadians (x) rod


:
- CONVERTE X DA A

log() LoGAritMo In BASE e Di X

log( base) - LOGARITMO


,
IN BASE INDICATA DI X

CINVERSIONI
5) Possono Usare Le FUNZION int)l E flobe)) Per convertire tra Interi E Numeri a virgola MOBILE

DAFLOAT A INT-A PERDITA PARTE FRAZIONARIA, NON C'È ARROTONDAMENTO CON FUNZIONE Int(x)
ERRORI
· I NUMERI A VIRGOL BBILE NOW SONO ESATTI /LIMITE BINARIO

STRINGHE
DEFINIZIONE
UNA Stringa È Una Sequenza Di Caratteri e Non può essere Modificata DOPO La SUA CREAZIONE /IMMUTABILI-DALTRIMENTI TYPEERRORI
IL NUMERO Di CARATTERI In Una STRINGA È DETTO LUNGHEZZA DELLA STRINGA /La Si PUS' Trovare CON La FUNZIONE Ien(stringa
LA STRINGA DI LUNGHEZZA O È DETTA STRINGA VUOTA D""0"

-VERLDADING
" Si Può Usare Per CONCatenare Le Stringhe Ma anche Come Somma
,
tia Numeri
de Un Caso di Operator Overladino (Diverse Funzioni A Seconda Dellutilizz
"Si
" *
* Può USARE Anche Per RIPETERE M
UNA STRINGA M VOLTE
Stringa
CONVERSIONI
PER CONVERTIRE I NUMERI IN STRINGHE SI USA La FUNZIONE Ser):
Se Una Stringa Contiene La rappresentazione DI Un NUMERO ALLORA POSSIAMO CONVERTIRLA
,
CON int) ) ...
E float) ) PSERVEPER INPUT
...

LDALTRIMENTI VALUE ERROR UNICI INDICI VALIDI DALTRIMENTI INDEXERROR


INDICI
OGNI Carattere Di Una STRINGA È ASSOCIATO Ad Un Indice Numero (DAO a Cen (sininga)-1).
L'Operatore l I RITORNa Il CARATTERE CORRISPONDENTE Ad Un DATO INDICE a STRINGAIM] RESTITUISCE IL CARATTERE ALL'INDICE M .

PARTI DISTRINGA
Operatore Di SLICE Igib] destrae I Caratteri da a (incluso) a blescluso
ENTRAMBI GLI INDICI SONO OPZIONALI : SENZA A SIGNIFICA TUTTI I CARATTERI DA Oincuso A b Escuse
SENZA D SIGNIFICA TUTT 1 CARATTERI DA Or/INccuse ALLE FINE

Indicando Anche Il passo Si Possono Prendere Sor determinati Carteri lo PRENDERLI AL CONTANO CON 1 NEGATI Ia b step]: :

CARATTERI
1 CARATTERI SONO MEMORIZZATI COME VALORI INTERI .
PUTHON USA I CARATTERI UNICODE .

Ord ( ) ... PRESTITUISCE IL CODICE UNICODE DEL CARATTERE TRA PARENTESI

Chrl ) ...
"
RESTITUISCE IL Carattere DEL CODICE UNICDE TRA PARENTESI
FUNZIONI US . METODI
PUTHON È UN LINGUAGGIO ORIENTATO AGLI OGGETTI E TVIM I VADRI SONO OGGETTI

DENI OGGETTO può Avere METODI OSSIA FUNZIONI Che Possono Essere CHIAMATE SU QUEGLI OGGETTI SPECIFICI USANDO
, ,
L SINTASSI Object . Method
FUNZIONI
LE FUNZIONI SONO GENERALI E POSSONO ACCETTARE ARGOMENTI DI DIVERSO TIPO

LE Funzioni Sono Chiamate Direttamente CON


, Un ELENCO DI PARAMETRI Func IParam)
LE FUNZIONI RESTITUISENO UN RISULTATO CHE PUO' ESSERE SALVATO IN UNA VARIABILE result = Func /Param)
METODI
DIVERSI METODI SONO SPECIFICI PER DIVERSI TIPI DI OGGETTI

I METODI SONO CHIAMAM CON LA NOTAZIONE DEL PUNTO (DOT-SYNTAX) Object .


method (
I METODI Restituiscono Un RISULTATO Che PUÒ ESSERE SALVATO IN UNA VARIABILE result = object .
method /(
METODI UTILI PER LE STRINGHE S .
Lower/) a VERSIONE MINUSEL DIS
S Upper 11
.
VERSIONE MaluSen DIS
a
Della SOTTOSTRINGA
a Una Nuova Versione Della Stringa S Nella Quale ogni Occorrenza
5 replace (ad , new)
.
ad È STATA SOSTITUITA DALL STRINGA new
SEQUENZA DI ESCAPE
ESCAPE PER VISUALIZZARE UNICDE
16 bit /MXXXX In cui XXXX È Il Codice esadecimale

32 bit-a/UXXXXXXXX IN CUI XXXXXXXX È IL CODICE ESADECIMALE


P3 : DECISIONI
IN PUT
PUOI LEGGERE UNA STRINGA DALLA CONSOLE CON LA FUNZIONE Input)
SE SERVE UN INPUT NUMERICO
,
SI DEVE CONVERTIRE LA STRINGA IN UN NUMERO int(input (l
DUTPUT FORMATTATO
Talvolta È opportunoInserire Del Valeri NUMERICI In STRINGHE DI TESTO In MODO Da OTTENERE UN OUTPUT PIÙ CHIARO E ORDINATO DA

VISUALIZZARE PYTHON . OFFRE DIVERSE SOLUZIONI : -


CONCATENAZIONE DI STRINGHE
-
F- STRING

-
L'operatore DI FORMATTAZIONE
-
IL METODO formal
F-STRING
· UNA Stringa formattata o festring è una Stringa preceduta Dal Carattere 'f' o 'F'
·
Queste Stringhe possono Contenere del Campi Sostituibili , Nella Forma DI ESPRESSIONI RACCHIUSE TRA PARENTESI GRAFFE 33
·
MENTRE LE STRINGHE CLASSICHE HANNO NORMALMENTE UN VALORE COSTANTE , LE F-STRING SONO PRATICAMENTE ESPRESSIONI VALUTATE Al MOMENTO

DELL'ESECUZIONE.

FORMATTAZIONE
· È possibile Modificare Il Formato In Cul Vengono Stampati I Valori
,
Utilizzando Degli SPECIFICATORI DI FORMATO

· Gli SPECIFICATORI DI FORMATO VENGONO INSERITI ALL'INTERNO DELLE GRAFFE , DOPO L'ESPRESSIONE DA VALUTARE , SEPARATI DAL SIMBOLO :

& Valore/variabile/espressione Formatol : Specifica di

SPECIFICATORI DI FORMATO
· CARATTERE : S

· ALLINEAMENTO <' ALLINEAMENTO A SX

's' ALLINEAMENTO A DX

'
ALLINEAMENTO NUMERI /VALIDO Sor Per NUMERI
X ALLINEAMENTO AL CENTRO

'
'

·
SEGNO INDICA Che Un SEGNO Deve Essere Usato Sia Per I Numeri POSITIVI Che NEGATIVI
1
INDICA Che Un SEGNO DEVE ESSERE USATO SOLO Per INUMERI NEGATIVI
,
INDICA Che IL + Va USATO PERIPOSITIVI E IL -
PER INEGATIVI .

· # lopzionale) : formato alternativo


·
Ampiezza /Opzionale)
· carattere di raggruppamento delle Migliaia : oppure loptionale
1
· . E "precisione" lopzionale)
· TIPO DI CONVERSIONE :

STAMPARE NUMERI REALI IFLAT

& VALORE Ampiezza PRECISIONE fY


È Round)(
:
E
.

* ↓ ↓ L FORMATO & Un Arrotondamento : Nelle Formule MATEMATICHE MEGLIO

Valore PENEDO
NUMEROMINIMO
DI CARATTERI
FLAT
PER Stampare È MEGLIO f'EifY
FLDAT DA
STAMPAr (SE
STAMPARE

·
OPERIMENINSERIES FORMATTAZIONE
"STRING WITH FORMAT SPECIFIERS" (VALUE , VALUE , .../

OGNINDATOREDI FORMATOVENESOSTVITONELL'ORDINE ,
DA UN VABRE CALGLTOO PRESENTE IN UNA VARIABILE
PRINCIPALI SPECIFICATORI DI FORMATO
·S STRINGA

· Ed NUMERS INTERO

NUMERO FLOATING POINT


· of IN

· 8 (NUMBER OF DIGITS] F NUMER FLATING POINT CON UN NUMER


.
FISSO DI CIFRE DOPO IL PUNTO DECIMALE

RAPPRESENTATO IN BASE 16 /HEX


· X/% X NUMERO INTERO

Iminuscoro/Maiusold
INDICATORI DI FORMATO : REGOLA GENERALE
· Carattere o A
·
flG di Conversione lopzionale
· LUNGHEZZA Minima Del Campo lopzionale)
11
· E "PRECISIONE" COPEIowalEl
· UN CARATTERE Che INDICA Il TIPJ DI INVERSIONE

L'ISTRUZIONE IF
FLOWCHART IF
È lifo leisel
E
UNO sol Del Due immi diramazione Falsa
FAT
IF ESEGUITO : Diramazione Vera

IN PY LE ISTRUZIONI CONTENUTE NEL DUE RIMI DEVONO ESSERE INDENTATE CORRETTAMENTE


...

UN'ISTRUZIONE IF PUO' COMPARIRE Da Sola ISENZA esse) .

I COMPOUND STATEMENT
· ALCUNI COSTRUTTI PY SONO COMPOUND STATEMENT (ISTRUZIONI COMPOSIE) .
DES .
If

· I CAMPOUND STATEMENT SI SVILUPPANO SU più di Una Riga di Codice E consistono di Un Header lintestazionel E Di Blocco di ISTRUZIONI .

· I COMPOUND STATEMENT RICHIEDONO UN" :


"
ALL FINE DELL'HEADER .
If CONDITION : J HEADER
INSTRUCTION A
BLOCC Di O PIU
21se :
INSTRUCTION 2
-- ISTRUZIONI T INSIEME DI
-
UNA ISTRUZIONI

SULL RIGA SUCCESSIVA ALL'HEADER


INIZIA
INDENTAZIONECON LA STESSA

SI CONCLUDE APPENA TRIVA UN STRUZIONE CON UN LIVELLO


-
-.
DI
-

INDENTAZIONE INFERIORE ,

DPOSSONa ESSERE ANNIDATI ALL'INTERNO DI ALTRI BLOCCHI DI

ERRORI ISTRUZIONI .

· Non Si devono Inserire Le Stesse Istruzioni Sulle due diramazioni dell' it /Altrimenti Lo Si può Togliere)
OPERATORE CONDIZIONALE
· UNA SCORLIATOIA PUs' Essere /Poco Usatal : istruzioni vero if condizione else istruzioni faiso

RIMO VERO Condizione "ReMo FALSo


I

OPERATORI RELAZIONAL
OPERATORI

=>
NEMENTE D Non

ERRORE
1 NUMERI IN FLATING-POINT HANNO UNA PRECISIONE LIMITATA , E I CALCOLI SU DIESSI POSSONO I NINDURRE ERRORI DI APPROSSIMAZIONE .

BISOGNATENERE CONTO DI QUESTI ERBRI QUANDO SI CONFRONTANO NUMERI IN FLATING-POINT *


O Optional
5) Può Usare Una Costante E Per Verificare Se L'EMBore di APPROSSIMAZIONE È ABBASTANZA PICILO
Molto Piccola .

Vel tot È L'ERRORE RELATIVO R-REQUIRED

iscloselb,b abs-tot)
-

IN Cu
IN ALTERNATIVA SI POSSONO CONFRONTARE DUE VALORI Con la Funzione Math . , telftot ,
abS -
tot LERORE ASSOLUT
L'ORDINE ALFABETICO
PER CONFRONTARE DUE STRINGHE ALTABETICAMENTE SI USAUNOPERATORE REGIONALE : String1 <
String2
. B -D
N .
-
LE LETTERE MaluSGLe VENGONO Prima DELLE MINUSGLE
-
L Spazio Viene PRIMA DI TUTTI1 CARATTERI STAMPABILI
-
I NUMERI 10-e) Vengono PRIMA DELLE LETTERE
L'ordine delle Lettere è definito dal Codice
AScl
-

PRECEDENZE DEGLI OPERATORI


GLI OPERATORI ARITMETICI HANNO La PRECEDENZA SUGLI OPERATORI RELAZIONALI : IL CALCOLO È FATTO PRIMA DEL CONFRONTO
SOLITAMENTE I CALCOLI Sono A DX DELL'OPERATORE Di CONFRONTO O ASSEGNAZIONE
DECISIONI ANNIDATE
FLWCHART IF ANNIDATY

FALSE
,F TRED ...
È Possibile ANNIDARE Un If ALL'INTERNO di Una delle DUE DIRIMAZIONI DI UN ALTRO IF

FALSE TRUE
IF

*
HAND TEALING .

· L'HAND TRACING È UN METODO Che AIUTA A Capire Se Un PREGIMMA FUNZIONA CORRETTAMENTE ,


CONSISTE NEL TRACCIARE A MANO SU Un FOGLIO L'EVOLUZIONE DELLE VARIABILI .

· Crea Una TABELLA Delle VARIABILI Più IMPORTANTI IN CUI TENERE TRACCIA DEL LB VALORI

SCELTE MULTIPLE
FLOWCHART SCELTE MULTIPLE

IF VERY ...
VENGINO USATI QUANDO Ci Sono più di DUE ALTERNATIVE (VETa/Falsol .

A
FALSa elif condizione : Dappena una delle Condizioni è Vera , il Relativo Blll DI ISTRUZIONI VIENE ESEGUITO /IRIMANENT TEST Now

ELIE VERD & SE


VENGONO EFFETTUATI
...
NESSUN TEST HA SUCCESSO VIENE ESEGUITO
,
L'ELSE FINALE .

↑AlSy
E

ELIF VEROD ...

Falso
L ↓
*

ISTRUZIONE PASS
=

PASS PerMETTE DI SCRIVERE L'OSSATURA DEL CODICE Lif ,


else
,
elif) Senza anbia Mettere Le ISTRUZIONI VERe E PROPRIE /PASS Verra SOSTITUIto Da queste
VARIABILI E SPERATORI BOOLEANI
LoGICA BOOLEANA DEGLI EMBORATORI ELETTRONICI
La lo GIA booleana È stata Da
Introdotta George Boole NEL 1847 ; Basata SU ENUNCIATI Che Potevano Essere VERI O FALSI , È USATA ANGia OGG NEL CALGUTORI.

VARIABILI BOLEANE
· UNA VARIABILE BOOLEANA PUS ESSERE SOLO VERA O FALSA

· boo È Un TIPO di DATO In PY (EN Valeri True o False


· Una Variabile Booleana È Spesso UTILIZZATA Come FUG /Indicatore) Proprio Perché PUJ' Essere Solo Vera O FALSA

· L condizione di un'ISTRUZIONE if È Un Valore BOLEAN

OPERATORI BOOLEANI
AND V andV = v COND . 1 DFALSE
V and F = F TruE
ENTTAMBE LE CONDIZIONI DEVONO ESSERE VERE AFFINCHE IL RISULTATO SIA VERS.
Tand V = F
=

DFALSE
PYThon Permette DI CONCATENARE GLI OPERATORI DICONFRONTO COMETTENDO and) F and F = F COND . 2


TRUE

DR FALSE TALSE
v
Si Utilizza or se Una Soli delle Condizioni Deve essere Vera Affinche La CONDIZIONE MULTIPU SIA VEN
Vor V =
COND. 1 D COND. 2 -D

F
SE UNA QUALUNQUE DELLE CONDIZIONI E VERA, IL RISULTATO EVERY TRUE TRUE

Not not V = F

Se C'è BISOGNO Di Invertire UNA VARIABILE BODLEANA O Il RISULTATO DI UN CONFRONTO , SI


DEVE UTILIZZARE IL not
not F = v
ERRORI
· CONFONDERE and con or

PROPRIETA'
Banda ·
Associativa : And Band = (aandi) and c = A and 1 and e) distributiva Aand /Bor2) = And Bora and 2
·
Commutativa : A andB =

A or B = B or A A or B or c = (nor or c = 1 or li or el A or (Bandc) (AorB) and (A or()


=

LEGGE DI DE MORGAN
La LEGGE Di De Morgan Spiega come negare Una Combinazione Di and e or : ·hot(aandB) = mot(a) or not (s)
not (a or b) = mot (A) and not (s)
CONVERSIONI VALORI BOOLEANI
·
A

· È Possibile Convertire Un Qualsiasi Valre in Un booleano , Usando la Funzione bool)) ,


con il seguente comportamento :

boo/Inters = True SEE SOLOSE INTER != 0

boolfrat)
- = True se e solose Flat !o

- bool STRINGal = True Se E soloSe STRINGA != O

-
boallista) = True se e solo se lenista ! = o (anche pertuple Set
,
e Dizionam
-
bool(NONE) = False SEMPRE

QUESTE CONVERSIONI AVVENGONO AUTOMATICAMENTE QUANDO UN VARRE VIENE USATO NEL CONTESTO DI if ,
while and or
,
not
, ,

ANALISI DI STRINGHE
OPERATIRE in
PER VERIFICARE SE UNA STRINGA CONTIENE AL SUO INTERNO UNA SOTTOSTRINGA SI USA L'OPERATORE In : S1 in Stringh
L'OPERATORE Not in È LINVERSO DELLOPERATORE in .

SUFFISSI
1) METODO endswith) ) .. APPLICATO Ad Una STRINGA RITORNA True Se La STRINGA TERMINA CON La SOTTOSTRINGA FORNITA COME PARAMETRO, E False ALTRIMENTI

VALIDAZIONE DEGLI INDUT


ACCETTARE UN INPUT SENZA CONTROLLARIO È IN GENERALE PERICOLOSO

REGOLA GENERALE
· NOW FIDARSI MAI DELL'INPUT DELL'UTENTE

·
Quando Si Legge Un Input dall'Utente , Controllare Sempre Che CONTENGA VALORI ALLETTABILI ,
PRIMA DI CONTINUARE L'ESECUZIONE.
·
se
i l Valore Letto Non e ACCETTABILE , STAMPARE Un MESSAGGIO E RICHIEDERE DI INSERIRE NUOVAMENTE IL DATO O USCIRE DAL PROGRAMMA
P4 : CICh

CICL WHILE
· CICLI USATI Per Ripetere Più VOLTE Lo STESSO BLOCCO DI ISTRUZIONI .
in python si ripete fino
·

·
SINTASSI WHILE CONDIZIONE g
a Che la Condizione

:
- D
è
I
VERSEMPRE FAS
INDENTATI SULtA ESEGUITI
ISTRUZIONE 1
STESSA COLONNA FINCHE
ISTRUZIONE 2 A DX CONDIZIONE VERA
-

· UN CICLO WHILE CONTROLUTO DA UN CONTATORE :


· CONTA Il NUMERO DI RIPETIZIONI EFFETTUATE

m Si FERMA QUANDO Sona State COMPLETATE UN NUMERO PREDEFINITO DI


ITEMZINI

UN CICLO WHILE CONTROLLATO DA UN EVENTO


:
·

# Controllato da una Condizione Che Prima O Poi DIVENTA FALSA

12 NUMERO Di ITEMAZIONI NON


# E NOTO IN ANTICIPA

·
Errori COMUNI : I CONDIZIONE DI TEST O -
IL CRPO VIENE ESEGUITO Se La CONDIZIONE È TRUE
-Il Ciclo Viene Eseguito fido a Che La Condizione Non Diventa False /Altrimenti Ciclo
INFINITO)
-"OFF-BY-ONE Errors" poUna Variabile Contatore Viene Usata Nella condizione
· IL CONTATORE PUs' ESSERE INIZIALIZZATO A d E A 1 , MA IN INFORMATICA
UN CONTATORE SI INIZIALIZZA SOLITAMENTE AD
· In BASE ALL'INIZIALizzazione del CONTATORE VIENE MODIFICATA ANCHE LA
CONDIZIONE

· Cicli Misti : Possono essere controllati Da Più CONDIZIONI


· INTERRUZIONI ANTICIPATE : -
BREAK-DO INTERROMPE CICLO
In NON COMPLETA L'INTERAZIONE CORRENTE

mm
... ANCHE SE NON SONO STATE FANE TUTTE LE ITERAZIONI NECESSARIE .

mm L'ESECUZIONE CONTINUA CON LE ISTRUZIONI SUCCESSIVE AL CICLO.

-
CONTINUE M NON VIENE COMPLETATA L'ITERAZIONE CORRENTE

m Il Ciclo Continua Normalmente CON Literazione SUCCESSIVA (Senza Terminare La CORRENTE


· SOMMARIO : -ZICLI WHILE COMUNI
SIDEVONO Inizializzare Le VARIABILI PRIMA /TESTATA PRIMA DEL CORPO DEL CICO)
·

Di CONTROLLARLE
-
ATTENZIONE Al CICLI INFINITI : DENTRO CORPO DEVE VARIARE IL CONTROLLO E DIVENTARE FALSE

VALORI SENTINELLA
LEGGENDO UNA SEQUENZA DI INPUT ,
E SPESSO NECESSARIO UN METODO PER INDICARE L FINE DELLA SEQUENZA QUANDO
.
NON SI SA IL NUMERO Di ELEMENTI CI SONO IN

UNA LISTA
,
Si può Usare Un carattere o Un varre speciale per Identificare L'Ultimo della Lista (valore Sentinell ,
Non Fa PARTE Del DATI
PRIMA LETTURA
LETTURA AD INIZIO Ciclo
PER LE VARIABILI CONTROLLO Del CICLI Posso : -
ASSEGNAME PRIMA UN VALRE ARBITRARIO DIVERSO DALL SENTINELLA

PRECARICARE LA VARIABILE CON UNA LETTURA INIZIALE FUORI DAL SUCCESSIVA LETTURA AL FONDO DEL CICLO
-
CICLOE

SENTINELLE BOOLEANE
· UNA Variabile booleana Può Essere Utilizzata Per Controllare Un CICLO Q VARIABILEFUG

SEMPLICI ALGORITMI CON CICLI

CONTARE ELEMENTI MASSIMO CONFRONTO CONSECUTIVI


SOMMA

MEDIA
INPUTFINO A MATCH MINIMO
CICL FOR
· IL CICLO FOR ...
IN SERVE A ITERARE SU TUTTI 1 VAGRI DI UN QUALSIASI CONTENITORE
· Un contenitore è Un oggetto (Come Una Stringa) Che Può Memorizzare UN INSIEME Di ELEMENTI.

PYTHON Ha DIVERSI TIPI DI CONTENITORI


STRINGACORTER
· : :
-

· SINTASSI : For Contatore In Contenit : Linee di Testo

ISTRUZIONE A * Contatore Prende a Valore di contenitore Per (Ilo


ISTRUZIONE 2
-
- .

OPPURE
For Contatore In Range (a b)
,
:

ISTRUZIONE A
ISTRUZIONE 2
-
- .

· RANGE : -
CONTENITORE Speciale di Una Sequenta di Numeri CONSECUTIVI .

-
SI GENERA CON 11 FUNZIONE RINGEIN) -DDA O A N -1

-
FOR CONTATORE In RANGEl) ( =) WHILE CONTATORELNi
CONTATORE t =1

-
I VALRI DEL RANGE (d b)
, COPRONO D d
- ITERAZIONI La INCLUSO DESCLUSO), dLIMITI ASIMMETRICI

-
I Valori DEL RINGE (d bal , coprono bidta Iterazioni (d Incluso DIncluso), dLimiti simmetrici

· SOMMARIO : - For È Versatile


-
For Usato Per Iterare Il contenuto di Un QUALUNQUE CONTENITORE
- FOR Può ITERARE SU Un Insieme di VALORI CON la FUNZIONE RANGE
.

LA FUNZIONE ENUMERATE
L FUNZIONE ENUMERATE TRASFORMA UN QUALSIASI CONTENITORE IN UNA SEQUENZA DI COPPIE DESNOME "Cigo"
=
Do, "c" 1, "i" 2, "a"3 "o
,
"

ENUMERITE (NOMEL

FORLINDICE Valore)
(NOME)
CICLI ANNIDATI ,
IN ENUMERATE :

· ANNIDARE UN CICLO ALL'INTERNO di Un ALTRO : Il Ciclo ANNIDATO Sarà INDENTATO ALL'INTERNO DEL BLOCC di CODICE DELL'ALTRO CICLO .

· Può ESSERE UTILE PER AVORARE CON MATRICI E TABELLE

PARAMETRI OPZIONALI DELU FUNZIONE PRINT


"NAMED Parameters
da Usare se si stampano diversi Valori (default : Spazio")
· Sep =d Definisce Il Separatore
PARAMETRI NOMINATI IN MANIERA ESPLICITA
(Default A capo (n))
.
· END =DDEFINISCE Cosa Stampare All fine della Riga :

ES ,

END = "" SI PUO USARE PER STAMPARE SULL STESSA RIGA .

NUMERI CASUALI E SIMULAZIONI


Python Mette a disposizione Un Generatore di Numeri Casuali che produce Numeri che sembrano Casuali (dopo Molto TEMPO Si RIPETONODO RANDOMI <1

PER USARE LA FUNZIONE DOBBIAMO PRIMA IMPORTARAD FROM RANDOM IMPORT RANDOM

IMPORTANDO DIRETTAMENTE LA LIBRERIA /IMPORT RANDOMI SI AVRANNO A DISPOSIZIONE ANCHE : RANDINTI b) -DNUMERO
i INTERS CASUALE TRADE

ELABORAZIONE STRINGHE
·
CONTROLLARE I MATCH : ES .
MAlUSCOLE & Oss .
Ch Anche Una Stringa di Lunghezza A (Non Esiste IL TIPO CARATTERE/CHAR)
·
CONTARE VOCALI :

· RICERCA DI TUTTI 1 MATCH. LESAMINA OGNI CARATTERE E STAMPA POSIZIONE Se SERVE) :

·
RICERCA DEL PRIMO MATCH :
E DELL'ULTIMO :

COSTRUIRE UNA NUOVA STRINGA


1 CONTENUTO DI UNA STRINGA È IMMUTABILE - DEVO CREARNE UNA NUOVA Per MODIFICARLA
PS : FUNZIONI
FUNZIONI
def Nomefunzione (parametron P2 )
, , ...
:

UNA FUNZIONE È Dato NOME


ISTRUZIONI
una Sequenza di Istruzioni a CUI Viene Un .
RISULTATO

· Si Chiama Per Eseguire Le ISTRUZIONI Variabile = Nomefunzione(parametri)


· I Parametri passati dal Codice principale sono den Argomenti le possibile anche avere funzioni Senza Argomenti def funzione (argomenti :

·
IL vadre Restituito Dalla funzione È Detto Valore Restituito (sempre e solo 1 oppure
,
Una Lista/Tupc) -di Non Sempre Su restituisce
UN VALORE
LE FUNZIONI SONO COME SCATOLE NERE : -
Si PASSA ALL FUNZIONE Ciò Che LE SERVE PER ESEGUIRE IL SUO COMPITO
-
SI ATTIENE IL RISULTATO
UN ESEMPIO DI FUNZIONE GIA PRESENTE IN PY È ROUND (NUMERO , NECIFREDES !

TROVARE FUNZIONI NELLE LIBRERIE


· IMPORT MADUL
PER USARE FUNZIONI Di MODULI DEVO IMPORTARLI
o FROM MODULO IMPORT FUNZIONE

· FUNZIONI Built-in (predefinite) NELL LIBRERIA Standard (Manuale pul

·
DENTRO I MODULI DELL LIBRERIA STANDARD (MATH ,
STRING , RANDOM, ... (
CREAZIONE E COLLAUDO FUNZIONE
·
SCELGO NOME FUNZIONE

·
CREO VARIABILI ARGOMENTS

· scrivo Istruzioni (Uso Arg .


come Normali Variabili
·
SCRIVI EVENTUALE RETURN VALORE def NOMEFUNZIONE (ARGOMENTO A ,
ARG 2
.
,
... ) :
ISTRUZIONI
RETURN RISULINTO

PASSAGGIO DI PARAMETRI
LE FUNZIONI RICEVONO GLI ARGOMENTI DELL'INVOCAZIONE DELLA FUNZIONE .

LA VARIABILE PARAMETRO E : DICHIARATA NELLA FUNZIONE INVOCATA


INIZIALIZZATA CON Il VALORE DELL'ARGOMENTO
Usata Come Variabile all'interno della FUNZIONE INVOCATA
SONO DETTI 'PARAMETRI FORMALI

Modifica Del Valore di Un parametro ha effetto solo locale Identro la funzione)Dalla funzione Viene passata solo
UNA COPIA DEL VALORI
I Per ovviare Al Problema Si usa Un'altra Variabile

GLI ARGOMENTI POSSONO VENIRE ASSOCIATI Al PARAMETRI IN DUE MODI : -


POSITIONAL CORDINE COME NELLA PROCEDURA)
PARAMETRO ARGOMENTO =
-
NAMED /ORDINE QUALUNQUE ,

I PARAMETRI POSSONO Avere DEL VALRI Di Default Se NESSUN ARGOMENTO VIENE PASSATO def Funzione (para = 0
,
Pare = 0 , ...
)

ES .
VALORI RESTITUITI
return d Passa Vabre di Ritorno dove è stata CHIAMATA
DTERMINA IMMEDIATAMENTE LA FUNZIONE

ISE NECESSARIO Più VALORI Si USA Una TUPL


DRESTITUISCE UN SOLO VALORE
).
.

COGNI RIMO della funzione Deve TERMINARE CON Un RETURN /oppure Uno Unico Fuori Dagli IE/wHEl ...

LSe dimenticato Può Causare ertare tempo esecuzione lo restituisce Null


IMPLEMENTARE UNA FUNZIONE : PASSI
·
DESCRIVERE COSA DEVE FARE L FUNZIONE

·
INDICARE UNA LISTA Di TUTTI GLI INPUT DELLA FUNZIONE

· DETERMINARE I TIPI DELLE VARIABILI PARAMETRO E DEL VARRE RESTITUITO

· SCRIVERE LO PSEUDOCODICE PER DITENERE IL RISULTATO VOLUTO

· IMPLEMENTARE IL CORPO DELL FUNZIONE


.

·
TESTARE LA FUNZIONE COME ELEMENTO ISOLATO .

FUNZIONI CHE NON RESTITUISCONO UN VALORE


·
NON Inserire telurn Equivale ad Avere Un return Voto dopo L'Ultima Istruzione della FUNZIONE /RESTITUIto valre SPECIALE Nonel
· Non È RICHIESTO Di INSERIRE UNA FUNZIONE return
· LE FUNZIONI POSSONO GENERARE DUTPUT
· Si Può ESEGUIRE La FUNZIONE RETURN SENZA UN VALORE ,

LA FUNZIONE MAIN E LE FUNZIONI NEL PROGRAMMI COMPLET

-QUANDO Si USANO FUNZIONI In PY , è bene Che Tutte Le ISTRUZIONI DEL PROGRAMMA SI TROVINO ALL'INTERNO DI FUNZIONI INDICANDONE COME
,
PARTENZA
>
-
Per ConvenzioneIL PUNTO di Inizio Si Chiama Main (che deve essere Invocato da Un'istruzione
OSS . L FUNZIONE Main : -
DOVREBBE ESSERE ESEGUITA Se /L PROGRAMMA È IN ESECUZIONE IN MODALITA STANDACONE
NON DOVREBBE ESSERE ESEGUITASE IL PROGRAMMA È IMPORTATO COME
MODULO In Un PROGRAMMA Più AMPIO
-

OSS . MOLTE VARIABILIO FUNZIONI INTERNE DI PYTHON HANNO NOMI SPECIALI E NON Sono NON DOVREBBERO ESSERE NORMALMENTE UTILIZZATE
lo
DUnder
Per Evitare CONFUSIONE Le VARIABILI DI SISTEMA HANNO NOMI Che INIZIANO E FINISCONO CON DOPPIO UNDERSCRE -- Name-- Sono detti Nomi
,

1. B .
- E IMPORTANTE DEFINIRE QUALSIASI FUNZIONE PRIMA DI INVOCARLA (ALTRIMENTI ERRORE DI TEMPO DI COMPILAZIONE) -

· Una Funzione Può Essere INVOCATA DALL'INTERNO DI UN'ALTRA FUNZIONE PRIMA DI ESSERE STATA DEFINITA

AMBITO DI VISIBILITÀ DELLE VARIABILI


Le Variabili Possono essere Dichiarate : -
Dentro Una funzione divariabili locali , disponibili solo nell funzione (anche Gli Argomenti
-
Fuori Da Una funzione d
VARIABILI Globali Qualunque FUNZIONE
,
Usata e Modificata Da .

SE SI USA La Dichiarazione GLOBAL DAVANTI Ad Un ARGOMENTO , QUESTO Sarà CONSIDERATO UNA VARIABILE GLOBALE lE NON CALE) .
L
DITE
LEVITARE
RAFFINAMENTI
PER RISOLVERE UN PROBLEMA COMPLESSO ESSO PIÙ PROBLEMI Più
VA SCOMPOSTO SEMPLICI /EQUESTI
·

,
IN ,
A CORO VOLTA IN ALTRI SEMPLICI .
,

·
REALIZZARE FUNZIONI BREVI (Spezzarle In più SottoFUNZIONI Se NECESSARIO
·
USARE GLI STUB SE SI SCRIVONO PROGRAMMI AMPI .

FUNZIONI RICORSIVE
ES .
FATTORIALE

der Fact(m) :

If M12 :
return 1
return m
*
fact (m-n)

numero = int(input /" INSERIRE UN NUMERO INTER : ")


Print (fact (numero
P6 : LISTE E TABELLE

PROPRIETA' DI BASE DELLE LISTE


LISTA
Lista = Struttura Dati Versatile E DINAMICa , che Contiene UN Numero VARIABILE Di ELEMENTI , Di QUALUNQUE Tipo, A CUI Si Può Avere Accesso Tramite La Lor Posizione (indice
nomelista = [] Acrea Una Lista VUOTA N INTERI , REALI , STRINGHE , DIZIONARI LISTE , MISTI
,

nomelista = [Vala ,
Vale , . . . Crea Una Lista Con dei Valori iniziali

nomelista[i] = m passegna Valore m Nella Lista all'indice i

ACCESSO ALLE LISTEDI ELEMENTI


· Una Lista è una Sequenza di Elementi ,
ognuno del 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/partono Da 0
Lists[i] ACCESSO ELEMENTO : LISTA Listali] = M ISOSTITUZIONE DELL'ELEMENTO: DELL LISTA CON IL VALORE

LISTE US STRING .

·
SIA LELISTE Che LE STRINGHE SONO SEQUENZE E L'OPERATORE [] VIENE USATO PER ACCEDERE AD UN ELEMENTO IN QUALSIASI SEQUENZA
.

· ESISTONO Due Differenze : -


Le LISTE Possono contenere Valeri di DENI TIPO Le STRINGHE Sole CARATTERI
,
IMMUTABILI .
- LE LISTE Sono MUTABILI , Le STRINGHE Sono

ERRORI
"OUT-OF-RANGE" D SIVERIFICA QUANDO SI ACCEDE Ad UNA LISTA FUORI DALL'INTERVALLO CONSENTITO.

STAMPARE UNA LISTA


· Una Lista Può Essere PASSATA COME ARGOMENTO ALLA FUNZIONE PRINTI) .
A QUELLA DELLA CREAZIONE DELLA LISTA
· TUTTI GLI ELEMENTI Sono STAMPATI CON UNA SINTASSI SIMILE .

DETERMINARE LUNGHEZZA DI UNA LISTA


·
La FUNZIONE leh () Permette di Ottenere La LUNGHEZZA DELLA LISTA
,
OVVERS IL NUMERO DEL Suo , ELEMENTI .

CICLI
1 for i in range (len lista)) : Ditera Sugli INDICI DEGLI ELEMENTI

2 for elements in Lista : DITera ASSEGNANDO GENI ELEMENTO DELL LISTA AD elements .

3 for li elements)
,
in enumerate (lista) : diTeraSule Coppie /Indice Elemento
,
Assegnando Ad Ogni Ciclo Una coppia di Valori dall Lista
.

RIFERIMENTI ALL LISTA


·
VARIABILE : "PUNTATORE" O "RIFERIMENTO" ALLA LISTA

· CONTENUTO : MEMORIA DOVE I DATI SONO CONTENUTI

ALLAS DI LISTE
Copiando una variabile Lista in Un'altra , Entrambe le Variabili Si Riferiscono alla Stessa Lista La Seconda Variabile è Un allas)
UNA VARIABILE LISTA SPECIFICA IL LUOGO DELLA LISTA COPIANDO
.
IL RIFERIMENTO SI FORNISCE UN SECONDO RIFERIMENTO (ALIAS) ALL STESSA LISTA
.

MODIFICARE LE LISTE IN PRESENZA DI ALIAS

È possibile Modificarle Le Liste Attraverso Ciascuna delle Variabili ,


infatil Si Sia Modificando la Stessa Lista ACCEDENDOVI Con Due NomiE
CAPIARELISTE
QUANDO SI VUOLE
CREARE UNA COPIA DELLA LISTA , OUVERO UNA NUOVA LISTA CHE ABBIA GLISTESSI ELEMENTI NELL STESSO ORDINE RISPETTO AD

UNA LISTA DATA , Si DEVE USARE LA FUNZIONE list /

INDICI NEGATIVI
PY PERMETTE AGLI INDICI NEGATIVI DI ACCEDERE ALLA LISTA DI ELEMENTI IN ORDINE CONTRARIO

OPERAZIONI CON LISTE


AGGIUNGERE ELEMENTI
5) può Creare una Lista Vuota e Aggiungere Successivamente Gli Elementi In Coda Alla Lista Secondo
,
Necessità lista. append) ) ...

INSERIRE UN ELEMENTO
È possibile inserire un nuovo Elemento In Una Specifica Posizione DELL Lista , GLI ALTRI ELEMENTI Si SPOSTERANNO IN AVANTI lista .
insert /INDICE, ...
TROVARE UN ELEMENTO
Il Metodo index / I fornisce L'indice
... della Prima Corrispondenza Se . L'ELEMENTO NOW VIENE TROVATO NELL LISTA , SI GENERI UN ValueError
lista index 1
. ... /
RIMUOVERE UN ELEMENTO
IL METODO Popli) RIMUOVE L'ELEMENTO NELLA POSIZIONE DATA TUTTI GLI ELEMENTI CHE SEGUONO QUELLO RIMOSSO VENGONO SPOSTATI "INDIETRO" PER RIEMPIRE
. IL VUOTO CREATO .

listb Pop (indice


.

CONCATENAZIONE
La CONCATENAZIONE di DUE LISTE CREA UNA NUOVA LISTA Che CONTIENE GLI ELEMENTI DELLA PRIMA LISTA SEGUITI DA QUELLI DELL SECONDA

DUE LISTE POSSONO ESSERE CONCATENATE USANDO L'OPERATORE Più


liStd1 = [a , b]
listd3 = lita1 + listd2-DEdb i col]
listd 2= [2 01]
,

AGGIUNTA (ESTENSIONE) DI UNA LISTA


MODIFICA LA
PER AGGIUNGERE IN CODA Ad UNA LISTA IL CONTENUTO DI UNA SECONDA LISTA : liSta1 = liStatliSta2 OPPURE liSta extend
.
(lista 2) -LISin ESISTENTE

REPLICAZIONE
*
La REPLICAZIONE DI UNA LISTA GENERA MOLTE CPIE DEL SUOI ELEMENTI ISIMILMENTE ALLA REPLICAZIONE DELLE STRINGHE) .
liStaNWord = liSta M

M SPECIFICA QUANTE COPIE DI liSta DOVRANNO Essere CONCATENATE

QUESTO È UTILE PER INIZIALIZZARE UNA LISTA AD UN VALORE PREDEFINITO .

TEST DI UGUAGLIANZA / DIFFERENZA


L'operatore == È Usato Per VERIFICARE Se DUE LISTE HANNO GLI STESSI ELEMENTI NELL STESSO ORDINE
.

Il Contrario E !

SOMMA , MASSIMO, MINIMg


Sum(liste Restituisce LaMMA Del NUMERI DELLA LISTA (Se È NUMERICA
Max (lista) RESTITUISCE IL VALORE MASSIMO (E ,
-A + R) IN Una LISTA Di NUMERI & STRINGHE

Min (listd) RESTITUISCE IL Valore MINIMO (d , D =

d) In Una Lista Di NUMERI a STRINGHE

IRDINAMENTI DI UNA LISTA


12 METODO Sort) / Ordina Una Lista di NUMERI O STRINGHE
,
In MODO CRESCENTE (-0-D +0, b-Dz)
L'ordinamento avviene Sul Posto
,
Modificando la LISTA STESSA
.

La FUNZIONE Sorted() Crea una Nuova Lista Ordinata


,
Senza MODIFICARE La LISTA DI PARTENZA
.

ORDINAMENTI INVERSO
Normalmente
Il Metodo sort E La Funzione Sorted Ordinano Eli Elementi Dal Più Piccolo AL Più Grande.

PER ORDINARE IN ORDINE INVERSO IDAL più GRANDE AL più PICCOLO) Si Può Usare Il PARMETR OPZIONALE reverse = True
PORZIONI ISLICE) Di UNA LISTA
IL MECCANISMO Di SLICING DELLE STRINGHE FUNZIONA NELLO STESSO MODO Anche PER LE LISTE liStd Nuova = lista. [a : b : Passo]

GI ARGOMENTI SONO LINDICE DEL PRIMO ELEMENTO (incluso , omesso vale d) e dell'ultimo (escluso ,
Se presso Indica la Fine della Listal
,
IL TERZO ARGOMENTO

Indica il passo al (positivo o Negativo, omesso Vale

ASSEGNAZIONE A PORZIONI
= POSSIBILE ASSEGNARE VALORI ALL PORZIONE : liStataid] = [M. .. .
, Mbd]
ESSI RIMPIAZZANT GLI ELEMENTI CON INDICE COMPRESO TR & E D-1 .

Se
La LUNGHEZZA DELLA LISTA 'riMplazzo È DIVERSA Dalla LUNGHEZZA DELLA PORZIONE , VERRANNO AGGIUNTI O RIMOSSI GLI ELEMENTI IN ECCESSO 3 IN

DIFETTy

FUNZIONI E OPERATORI COMUNI SULLE LISTE

METODI COMUNI SULLE LISTE


OPERATORI PER MODIFICARE LE LISTE

METODI DELLE LISTE

ALGORITMI COMUNI CON LE LISTE


RIEMPIRE UNA LISTA
values = []
for i in range (m) :
values. append( ... (

COMBINARE ELEMENTI DELLA LISTA


NUMERI-D reSUlt = 0 0 .

for i in values :
result = result + i
"
STRINGHE DreSUlt :
"

for i in names :

result = result + i

SEPARATORI DI ELEMENTI
PER VISUALIZZARE GLI ELEMENTI DI UNA LISTA SEPARATI DA UN SEPARATORE :

ES
.VeSUlt liSto ,
=

en /istall :
result = result + "SEPARATORE" + liSta[i]
Print Iresult
IN ALTERNATIVA SI PUÒ USARE IL METODO .
(in)) -D SEPARATORE Join
. (listd)
ES .
Vesult = SEPARATORE . Voin(lista
Print (result)
STRINGA-D LISTA
· Spiit (Separatore restituisce Una Lista delle SottoStringhe RISULTANTI Dalla DIVISIONE DELLA STRINGA In CORRISPONDENZA DI CIASCUN (SEPARATORE).
MASSIMI E MINIMO
MASSIMO D

MINIMO D

RICERCA LINEARE
UNA RICERCA LINEARE ISPEZIONA GLI ELEMENTI DI UNA LISTA FING A TROVARE UNA CORRISPONDENZA
.
TROVARE E CONTARE CORRISPONDENZE
TROVARE D

CONTARE D

R) MUOVERE CORRISPONDENZE
DOPO AVER POSTO Un CICL Ed Una CONDIZIONE POSSO Applicare IL METOPO. Popl) Senza Incrementare La POSIZIONE
QUANDO

RIMUOVE .

SCAMBIARE ELEMENTI
list = [ ... ]
i =...

J =...
scambio = listd[i]
1 istd [i] = liSId [v]

liSta [0] = Scambio

SCORCIATOIA
Assegnazioni in parallelo a (6 b) )
,
= ...
,
...
)
SCAMBIO a (a b),
= (b a)
,

CONFRONTO DI LISTE
PRESE art J .. E b = [ )
...

· d= = b -D True SouSE : -
len(al ==
lem(b)
-
aTi] = = bli] Per Di < len(a)
-
STESSA LUNGHEZZA ,
STESSI ELEMENTI , STESSO ORDINE

· d! = b a True Son SE : -Ien(al ! =


lem(b) APPURE

-
aTi] ! = bli] Per Dei < len(a) oppure

-
DIVERSA LUNGHEZZA ,
O DIVERSI ELEMENTI , O DIVERSO ORDINE

· Gld a
Confronta Gli Elementi Con Le Stesso Indice In Rodo ordinato
,
Alla Ricerca della Prima Coppia Di ELEMENTI DIVERSI

SE : -d[i] < bli] -D True


-
d[i] > bli] - False
- Se Una LISTA FINISCE PRIMA DELL'ALTRI,VIENE CONSIDERATA MINORE

USO DI LISTE NELLE FUNZIONI


UNA funzione Può Accettare una Lista cre Argomento Ila Lista della funzione non è una copia , ma Modifica L'originale.

RESTITUIRE LISTE DA FUNZIONI


Una Lista Costruita In Una Funzione Può essere Copiata In Una VARIABILE Che L CHIAMA limmiE return ... )
ATTENZIONE
· La VARIABILE PARAMETRO È INIZIALIZZATA COME ALLAS DELL'ARGOMENTO
· Attraverso L'AllaS
,
è Possibile Modificare Il Valore dell'argomento (SENONE IMMUTABILE
· NON RI-ASSEGNARE MAI La Variabile
,
ALTRIMENTI Si "PERDE" L'ALIAS /MAI Usare Una Variabile Parametro Alla SX del Segno =
TUPLE
UNA TUPh È SIMILE Ad Una LISTA
,
Ma È IMMUTABILE DUNA TUPL È UN CONTENITORE ORDINATO E IMMUTABILE .

DEFINIRE TUPLE
tupid =
) ........... ) Oppure (MENo ELEGANTE) tupid =..........

OPERAZIONI SULLE TUPLE


·
ACCESSO AD ELEMENTI CON [J
·
CONCATENAZIONE CON OPERATORE + D LUPId = tup1d1 + EUPId2
· Funzion len)) sum)1 maxil
, ,
· ITERARE SUGLI ELEMENTI CON For

· VERIFICARE APPARTENENEACON In E not in


ASSEGNAZIONI DI TUPLE
ASSEGNAZION MULTIPLE -D
(d ,
b , c) = (. , ...
,
...
)
SCAMBIO VARIABILI - D (d , b) = (b , a)
RESTITUZIONE DI VALORI MULTIPLI
LE TUPLE POSSONO ESSERE USATE CON LA FUNZIONE VetUrN PER RESTITUIRE PIÙ VALORI DALLE FUNZIONI

COMPREHENSION
LIST CIMPRECENSION
SINTASSI SEMPLIFICATA PER CREARE UNA LISTA A PARTIRE DALL'ITERAZIONE E MODIFICA DEGLI ELEMENTI DI UN ALTRO CONTENITORE

CONTENITORE
LESPRESSIONE (ELEMENis) ,
For ELEMENTO in

ELABORAZIONE SUGLI ELEMENTI DEL CONTENITORE

LIST COMPREMENSION CON ANDIZIONE


NELL CREAZIONE DELLA NUOVA LISTA Si POSSONO SELEZIONARE SOLO GLI ELEMENTI CHE SODDISFANO UNA CERTA CONDIZIONE
,

DESPRESSIONE (ELEMENis) For ELEMENTO in CONTENITORE IF CONDIZIONE CELEMENTO)]


LIST COMPREMENSION CON CICLI ANNIDATI
È POSSIBILE INDICAre Più di Un CONTENITORE SU CUi Ciclare ,
SEMPLICEMENTE RIPETENDO LA PARTE for ELEMENTO in CONTENITORE
DESPRESSIONE (ELEM1 ELEM2)
, for ELEM1 in CONTENITORE1 ELEM2 in CONTENITOREL IF CONDIZIONE SELEMA , ELEM2)]

LIST COMPRECENSION PER ALTRE STRUTTURE DAT


ES .

ADATTAMENTO DI ALGORITMI
ADATTARE ALGORITMI
FINO Ad ORA POSSONO ESSERE MANIPOLATIED ADATTATI SECONDO NECESSITÀ
GLI ALGORITMI VISTI

SCOPRIRE ALGORITMI MANIPOLANDO DEGETTI FISICI


MANIPOLAZIONE Di OGGETT
-

UNA TECNICA UTILE Per Scoprire Un ALGORITMO È La PANIPOLAZIONE DI OGGETTI FISICI .

TABELLE
Le LISTE POSSONO ESSERE USATE PER CONTENERE DATI IN DUE DIMENSIONI (2D) ,
COME In Un FOGLIO Di CALCOLO DMATRICI

SOSTANZALMENTE SI CREA UNA LISTA DI RIGHE la LON VOLIA DELLE LISTE


ES .

ACCEDERE AGLI ELEMENTI


SI USANO 2 INDICI : PRIMA L'INDICE DI RIGA , Poi DI COLONNA

TROVARE ELEMENTI VICINI

SOMMARE PER RICHE E PER COLONNE

USARE TABELLE CON FUNZIONI


len (tabella) Numero Righe
Passando UNA TABELLA Ad UNA FUNZIONE Occorre TROVARE Le DIMENSIONI DELL TABELL
, :/en(tabella) Numer brenne
ORDINARE TABELLE
Possibile Utilizzare
= I l METODO Sort E la Funzione Sorted)) su una Tabella
.

L'ORDINAMENTO AVVERRA CONFRONTANDO LED EVENTUALMENTE SCAMBIANDO) DELLE RIGHE INTERE

I CONFRONTO DELLE SINGOLE RIGHE AVVIENE UTILIZZANDO L'ALGORITMO DI CONFRONTO DELLE LISTE .

COPIE SUPERFICIALI E COPIE PROFONDE


COPIE DI STRUTTURE ANNIDATE
PER COPIARE LISTE E TABELLE : CREARE UN ALLAS : NUOVA VARIABILE SENZA
,
CPIARE ALCUN DATO
· Copia Superficiale IShallow) : Copia la Lista ,
ma Liscia INVARIATI GLI ELEMENTI ,
CHESARANNO Così CONDIVISI TRA Le DUE APPLE
Il SINGOLI ELEMENTI SONO ALIAS).
· Copia profonda (deepl : Copia la Lista , e fa una capia di Ciascuno degli Elementi (replicandoli) , e così via Finche INgnita
CONTENITORI DI DATI .

CREARE UN ALIAS
alids = table
COPIA SUPERFICIALE (SHALlow)
· Shallow = List (table

· Shallow = table . copy


· Shallow = table [ :]

· Shallow = + table

·
Shallow = Copy .
Copy(table) ddal Modulo copt

COPIA PROFONDA IDEEP


PER OTTENERE UNA CAPIA PROFONDA OCCORRE SCRIVERE UN CICLO PER CREARE UNA CPIA DI CIASCUNA RIGA oppure UTILIZZARE
,
La FUNZIONE delpopY del Modulo copy
PF : FILE E ECLEZIONI
LEGGERE E SCRIVERE FILE DI TESTO
APRIRE FILE : LETTURA E SCRITTURA
· Per accedere ad un file ,
Occorre Innanzitutto aprira e variabile =
Open ("nomefile .
estensione" , "Mo: VRE w = WRITE

USATY PER LEGGERE/SCRIVERE


Le che Verr
IL GNIENCIS

N B . Quando Si Apre Un file


. In Modalità di Lettura ,
Il FILE Deve ESISTERE LED Essere ACCESSIBILE ALL'UTENTE) ,y Si VERIFICHER UN'ECLEZIONE
.

·
L'oggetto File Restituito dalla funzione Open Deve essere MemorizzatoIn Una Variabile (TUTTE Le OPERAZIONI SUCCESSIVE VERRANNO ESEGUITE TRAMITE QUESTO OGGETT)
·
Quando si Apre Un file in Modalità SCRITTURA IL FILE VIENE Creato
,
(Se Non Esiste oppure Suvoiato /Se Già Esisteva
CHIUDERE FILE
PER CHIUDERE UN FILE : nomefile . Closell
N B . . Se IL PROGRAMMA DOVESSE USCIRE SENZA CHIUDERE UN FILE APERTO IN SCRITTUR ,
L'OUTPUT POTREBBE NON ESSERE SALVATO COMPLETAMENTE NEL FILE.

MODI DI APERTURA
V - LETTURA (DEFaucil
W -D SCRITTURA

X - CREA ESCLUSIVAMENTE UN FILE (Se IL FILE GA ESISTE, Allora L'OPERAZIONE FALLISCEl


6 - APRE UN FILE PER AGGIUNGERE ALL FINE ISENZA CANCELLARE LE INFORMAZIONI GA PRESENTIL .

t - Apre IN MODALITA TESTO IDEFAULi


b - APRE IN MODALITÀ BINARIO
+ Apre Un FILE Per Aggiornarl /Lettura/SCRITTURA .

RICERCA FILE
IL FILE VIENE CERCATO NELLA CARTELLA IN CUI VIENE AVVIATS PY

LETTURA FILE UTF 5 .

SE IL FILE CONTENE SIRBOLI NOW PRESENTI NELL'ASIll Base c variabile =


Open ( "nomefile. estensione" "r" encoding , ,
= "UtF-8")
LEGGERE DA UN FILE
ALL'APERTURA DEL FILE
,
UN CONSORE IMMAGINARIO VIENE POSIZIONATO ALLINIZIO DEL FILE .

·
Metodi Per LEGGERE UNA PARTE DEL FILE ,
PARTENDO DALLA POSIZIONE DEL "CURSORE" : 81 Sole CARATTERE Variabile . (1)
Read
· N CARATTERI CONSECUINI variabile . Read (N)

· UNA RIGA Variabile .


readline/) opp ,
for line in Variabile

· L'INTERS FILE variabile . readlines() opp . variabile .


read((

DopoLa LETTURA Il CURSORE VIENE FATTO AVANZARE FINO AL PRIMO CARATTERE NON ANCORA LETTO
,

LEGGERE UNA RIGA DA UN FILE


1) CURSORE È INIZIALMENTE ALL'INIZIO DEL FILE

Uso Funzione readline)) Che Legge fino a che Non Trova La fine dell LINEA ( "Im"/E Pri Sposia IL CURSORE ALLINIZIO DELLA RIGA SUCCESSIVA
.

Se Si USA
La funzione Alla fine del file Restituisce Una STRINGA VUOTA .

SE IL FILE CONTIENE UNA LINEA VUOTA


,
IN TAL CASO VIENE RESTITUITO "Im"
LEGGERE PIÙ RIGHE DA UN FILE
5) LEGGE RIPETUTA Una SINGOLA RIGADAL FILE Finché NON RAGGIUNGIAMO IL VALORE SENTINELL ,
,

IL VALRE SENTINELL È L STRINGA VVOTA (FINE DEL FILEl


INVERTIRE I VALORI LETTI DA FILE
I DATI LETTI DALL FUNZIONE redoline/) Sono ESCLUSIVAMENTE STRINGHE
.

S IL FILE CONTENESSE DAM NUMERICI ,


LE STRINGHE DOVRANNO ESSERE CONVERTITE IN VALORI NUMERICI TRAMITE Int() E float)I .

IL CARATTERE DI FINE LINEA AL FONDO DELL STRINGA VIENE IGNOMITO DALLE FUNZIONI DI CONVERSIONE SENZA GENEMRE
,
ENTORI.

SCRIVERE SU UN FILE
Si Può Scrivere in Un File (aperto In Scrittural Utilizzando IL Metodo Writell a file .
Write) ... ) Occorre Specificare IL CARATTERE DI FINE LINEA
.

Può Essere COMODO Usare IL METODO Write() CN STRINGHE FORMATTATE .

È Possibile Scrivere Più Righe CONTEMPORANEAMENTE CON IL METODO File Writelines


.
/Lista) ,
Che Riceve come Parametro Una Lista di Stringhe ICIASCUNA contenente Già

IL Terminatore di Riga) .

INFINE, Si Può CHIEDERE Alla FUNZIONE PRINT DI INVIARE L'output Su Un FILE ,


CON Il PARARETRO OPZIONALE file = a Print ("Frase" , Val
,
File = outfile
ERRORE FREQUENTE
·
BackSlash (barra Rovesciata) nei Nomi di file doccorre raddoppiare Il Nel Nome del FILE CHIAMATO DAL CODICE

· È Un Carattere Di ESCAPE

·
Se L'Utente Inserisce da Input Il Nome DEL FILE, Non È Necessario Raddoppiare La Barra ROVESCIATA .
INPUTE DUTPUT DI TESTO LIBERO
INPUTE JUTPUT TESTUALE
read() spiit)) sono Metodi per l'elaborazione di INPUT TESTUAl
, , Stripli Utili

· Python Può Trattare Un FILe Aperto IN INPUT CMESE Fosse UN CONTENITORE DI STRINGHE IN CUI CIASCUNA LINEA CORRISPONDE AD UNA SINGOL STRINGA
.
,
QUESTO È UTILE NEL CILLI FOR D FOR LINEA In FILE :

PrintILINEA
·
IL FILe È Un Tipo particolare di CONTENITORE : Dopo Aver Letto Il FILe , Occorre Chiudert E Riaprinn ,
Se Si Vuole Iterare Nuovamente Su di Esso.

METODI PER ELIMINARE CARATTERI INIZIALI/FINALI

LEGGERE PAROLE
Talvolta è NECESSARIO LEGGERE Le SINGOLE PAROLE Da Un FILE Di TESTO .
Se DOBBIAMOKSolare Le PAROLE Dal SEGNI di PUNTEGGIATURA , POSSIAMO

ANCELLARLI CON il Metodo Ustrip() a Ustrip". , ?!"


METODI PER SUDDIVIDERE UNA STRINGA

LEGGERE CARATTERI
IL METODO read() Può Ricevere Un Argomenta Che Specifica IL NUMERO Di CARATTERI Da LEGGERE , RESTITUENDO UNA STRINGA CHE CONTIENE
I

CARATTERI .

L'argomento
Se FORNITO Vale 1
,
il Metodo Vead(1) Ritorna una stringa che contiene il prossimo carattere del file lalla fine DEL

FILE RITORNA UNA STRINGA VUOTAl.

INPUTED OUTPUT DI TESTO STRUTTURATO


LEGGERE DATI COMPOSTI IRECORDI
UN FILE DI TESTO PUÒ CONTENERE UNA SEQUENZA DI DATI COMPOSTI /RECORD DI DATI ,
IN CUI CIASCUN RECORD CANTIENE DIVERSI CAMPI /FIELDI.
SOLITAMENTE SI LEGGE UN INTERO RECORD DI DATI PRIMA DI ELABORARLO.

IL FORMATO Più COMUNE MEMORIZZA UN RECORD DATI IN OGNI LINEA DEL FILE .
I CAMPI SONO SPESSO SEPARATI DA UN DELIMITATORE SPECIFICY

SI POSSONO ESTRARRE FACILMENTE I SINGOLI CAMPI USANDO IL METODO Split)) .

IN ALTERNATIVA I RECORD POSSONO ESSERE ORGANIZZATI ANCHE CON UN CAMPO PER LINEA MENTRE UNA LINEA VUOTA INDICA LA FINE DEL RECORD.
,

LEGGERE L'INTERS FILE


Il METODO read() SENZA ALCUN Parametr Leggerà Il FILE INTER COME UN'UNICA STRINGA .

Se VOGLIAMO DIVIDERE LA STRINGA NELLE SINGLE RIGHE D LISTA = FILE Split ("Im") Oppure FILE .
Splitlines) /
OPERAZIONI SUI FILE
L'ISTRUZIONE With
Per NON DIMENTICARE Di CHIUDERE UN FILE APERTO Cerrore FREQUENTE) ,
PYTHON offre Una Scorciatoia Speciale : With Open (Nome File "W") as
,
Nome :

Write JUEPUE to NOME


L'ISTRUZIONE With Apre IL FILE CON il Nome specificato Con as
,
assegna l'oggetto file alla Variabile Nome E
,
Chiude L'oggetto File Automaticamente Quando Si raggiunge La

FINE DEL BLOCCO lo Quando Si Genera Un'eccezionel.

N B. . TUTTA L'ELABORAZIONE DEL FILE /LETTURAO SCRITTURA DEL FILE DEVE AVVENIRE DENIN IL CORPO DEL BLOCK With

ELABORARE FILE IN FORMATO CSV


CSV
·
CSV d "Vapri Separati da virgola

o Comuni Come FORMATI DI INTERSCAMBIO DI TABELLE DI DATI .

· I Campi sono ricchiusi tra virgolette e Separati da virgole "Campod" "Campol",


,
...

LEGGERE/SCRIVERE FILE CSV


· UN FILE CSV È Un FILE DI TESTO : -
UN RECORD PER OGNI RIGA
- su una riga
,
campi separati da vincola lusiamo spiit l'ill
-I Campi Possono essere racchiusi tra virgolette (Usiamo Strip l'""))
·
oppure USIAMO Il MODULO (Su DELLA LIBRERIA STANDARD : -
import (SU

-
from csv import reader

- from csv import writer


L'OGGETTO CSV READER .

· L Funzione reader del Modulo Est Riceve Come Argomento Il Riferimento A Un FILE /Già Aperto In LETTUR E RESTITUISCE UNo Speciale OGGETTO

SPECIALIZZATO NELL LETTURA DI FILE CSV .


ADOGNI SUA ITERZIONE VIENE LETTO UN RECORD CONTANTI ELEMENTI QUANTI SONO I CAMPI /MESTITUITI
Sotty forma di Stringhe in una cizia .
· Parametri Opzionali : -
Delimiter d Permette Di SPECIFICARE IL Carattere UTILIZZATO Per DELIMITARE I CAMPI IDEFAUCT,
ISVREADER = CSV .
reader /infile delimiter
,
= il
FIELDNAMES -DIndica Se Non sono già presenti prima riga del file
-

I Nomi dei Campi ,


nella .

LETTURA DELL'INTERO FILE CSU


SE INTERESSA LEGGERE IL CONTENUTO DI TUTTO IL FILE le Si PUS MEMORIZZARE IN UNA LISTA .

2 METODI : -
dati = []
for row in Csv Reader :

dati. append (row)


-
dati List lesv Reader)
SALTARE UNA RIGA
5) Puo' SALTARE UNA RIGA CON : Next KsvReader
L'OGGETTO CSV WRITER .

La FUNZIONE WRITER DEL MODULO (SV : - RICEVE COME ARGOMENTO IL RIFERIMENTO A Un FILE /Già Aperto in Scrittural
-
RESTITUISCE UNO SPECIALE OGGETTO, SPECIALIZZATO NELL SCRITTURA DI FILE CSV : from CSV import Writer

(swriter = Writer loriFice)


-
IL FILe (SU in USCITA Viene Creato CHIAMANDO RIPETUTAMENTE /L METODO Writerowll ,

CHE RICEVE UNA LISTA DI STRINGHE GRISPONDENTI AL CAMPI DEL REGRD DA AGGIUNGERE .

(svWriter Writerow .
1 LISTA STRINGHERICA
GESTIONE DELLE ECLEZIONI
IL Luogo In Cul Si Rileva Un problema è Diverso DAL Luogo in Lui è Possibile Gestire IL PROBLEMA .

IL MECCANISMO DELLE ECLEZIONI


· RILEVARE GLI ERRORI : -
ACCORGERSI DI UN PROBLEMA A RUN-TIME , CHE IMPEDISLE LA NORMALE CONTINUAZIONE DEL PROGRAMMA

-
SOLITAMENTE AVVIENE ALL'INTERNO Di UNA FUNZIONE CHIAMATA , Anche A DIVERSI LIVELLI DI ANNIDAMENTO, OPPURE IN UNA FUNZIONE DI LIBRERIA .

-
U FUNZIONE NON Sa COME "Recuperare" L'ERTRE ,
Deve "informare" una diversa parte del programma .

· GESTIRE GLI ERRARI : -


RICEVERE LA SEGNALAZIONE CHE È STATO RILEVATO UN EMORE

-
CAPIRE QUALE ERRORE SI È VERIFICATO E Le SUE CAUSE

-
PROVARE A CORREGGERE LE CAUSE DELL'ERRIRE

-
NEL CASO PEGGIORE, INTERRMPERE L'ESECUZIONE DEL PROGRAMMA

& La Gestione DELLE ECLEZIONI FORNISCE UN MECCANISMO FLESSIBILE PER PASSARE Il CONTROLL DELLA RILEVAZIONE DELL'ERBRE AD UN GESTORE CHE LO SAPPIA

TRATTARE
QUADRO GENERALE
RILEVARE ERRORI
·
La funzione Deve Controllare Se Sono VERIFICATE TUTTE Le CONDIZIONI PER PERMETTERE L NORMALE PROSECUZIONE DEL LAVORO

UNELEZIONI
OALIMENTFUNZIONE
SOLLEVA

· VSONODIVERSITRIDECEZON VALEEMBERN FUNZIONEDELL A


se

GESTIRE ERRORI
·
Se USIAMO Delle FUNZIONI Che POSSONO GENERARE ECCEZIONI , DOBBIAMO DEFINIRE DEL CODICE PER GESTIRLE

I CODENTRO VENESEMONUNBo T
·
Se L'ELLEZIONE NON Viene GESTITA, Ciò Causerà L'INTERRUZIONE DEL PROGRAMMA

ALCUN, TIPI DI ECCEZIONI

GESTIRE LE ECLEZIONI
· TUTTE LE ECCEZIONI DOVREBBERO ESSERE GESTITE DA QUALCHE PARTE DEL PROGRAMMA

· PER GESTIRE GLI ERRORI NON RECUPERABILI : -


PER SEMPLICITÀ : TERMINARE IL PROGRAMMA
- PER MAGGIOR USABILITà : CHIEDERE ALL'UTENTE DI CORREGGERE L'ERRORE

GESTIRE LE ECCEZIONI : TRY - EXCEPT


· LE ELLEZIONI VENGONO GESTITE ATTRAVERSO L'ISTRUZIONE TRY /except
·
L'Istruzione Nella Parte
Posizionare di PROGRAMMA Che SA COME GESTIRE UNA PARTICOLARE ECLEZIONE

· IL BLOCC TrY CANTIENE Una O Più ISTRUZIONI Che POTREBBERO CAUSARE UN'ECLEZIONE IDEL TIPO Che STIAMO CERCANDO DI GESTIRE) .

· UNA O Più Clausole except CONTENGONO IL GESTORE Per CIASCUn Tipo di ECCEZIONE .

SINTASSI

MESSAGGI IN OUTPUT
·
Per Ottenere Il Messaggio CONTENUTO NELL'ELLezione , DOBBIAMO Accedere All'OGGETTO ECCEZIONE CORRISPONDENTE

Può SINTASSI dS except ValueError as exception :


· l'oggetto Corrispondente all'eccezione Si ASSEGNARE Con La :

·
Quando si esegue il gestore di ValveError ,
la variabile exception è impostata all'oggetto Ellezione che È stato Creato dalla Raise

· NEL CODICE DEL GESTORE , POSSIAMO ESTRARRE IL MESSAGGIO USANDO Str (exception) /CONVERTIAMO L'ECCEZIONE IN STRINGAl

· Quando Si Esegue il Corpo del Gestore di Errori


,
Si Può stampare il Messaggio Che è fornito all'Interno DELL'ECCEZIONE : except ValueError as exception :
lexception)
GESTORE "CATCH-ALL" ("Error :
"
Print
DI ECCEZIONE
ser
,

· Per Gestire ECLEZIONI Di Più TIPI DIVERSI


,
È POSSIBILE Usare Un UNICO BLOCC In GRADO DI CATTURARLE TUTTE .
SI PUS FARE In 2 MODI :

UNA Singola Clausola eXCept Senza Specificare Il TIPO DI ECCEZIONE


-

- una Singola Clausola except Exception : Dove Exception È L'eccezione Più Generica ,
Che Comprende TUTTE Le ALTRE COME SOTTOClassi POSSIBILI

SUGGERIMENT POSSIBILE : QUANDO UNA FUNZIONE RILEVA UN PEBLEMA CHE NON SA MSOLVERE , MEGLIO GENERARE UNELEZIONE RISMETT

CERCARE DI "RIPARARE" CON UNA CORREZIONE IMPERFETTA .

PossibileNNONDEBBRENSORSEEFFETTAMENTEEGDODMED
·
Catturare Le Ellezioni il più Tardi
LA CLAUSOLA FINALLY
· La Clausola FINALLY Si USA Quando Occorre COMPIERE ALCUNE AZIONI "CONCLUSIVE" ,
INDIPENDENTEMENTE DAL FATTO CHE SI SIANO VERIFICATE

ECCEZIONI OPPURE NO.

· È Importante Ricordare di chiudere Sempre Un file di Output Anche nel Caso Si verifichino Eccezioni Iper Garantire Che Tutto L'output SIA SCRITTO SUL FILE) .
· POSSIAMO Inserire La Chiamata a Close() In una Cluson Finally :

SINTASSI FINALLY

SUGGERIMENTI
·
NON USARE EXCEPT E FINALLY NELLY STESSO BLOCC TRY :

L CLUSOLA FINALLY VIENE ESEGUITA QUANDO IL BLOCCO TRY TERMINA IN The MODI POSSIBILI :
,

1
. DOPO Il COMPLETAMENTO DELL'ULTIMA ISTRUZIONE DEL BLOCD TRY

2 . Dopo Il COMPLETAMENTO DELLULTIMA ISTRUZIONE DI UNA CHUSON EXCEPT SE 11 BLOCO TRY HA INGNIMTO UN'ECLEZIONE
.
,

3
. NEL Caso In CUi Si Sia Generata un'ECLEZIONE NEL BLOCCO TRY
,
Ma Questa Non Sia STATA Gestita Da ALLUN BLOCC EXCEPT

·È Meglio Usare Due Blocchi TRY CANNIDATI Per Gestire IL Contryll DEL Flusse

FONTE DEL MESSAGGI DI OUTPUT


·
Quando si solleva un'eccezione
,
si può fornire una stringa con un proprio Messaggio .
Vaise tipoeriore ("messaggio")
· IL MESSAGGI DELL'ECCEZIONE VIENE FORNITO ALL'ATTO DELLA CREAZIONE DELL'ECLEZIONE .

SINTASSI

GESTIRE ERRORI DI ACQUISIZIONE


GESTIRE ERRORI DI ACQUISIZIONE

GESTIRE ERRORI DI ACQUISIZIONE : READFILE


· Crea L'oggetto FILe E Chiama La Funzione READData)
· NESSUNA Gestione delle ECCEZIONI (Non vi sono Clausole Except
· La Clausola FINALLY Chiude IL FILE IN TUTT 1 Casi (ECLezioni o No
GESTIRE ERRORI DI ACQUISIZIONE : READDATAL I
· NO Gestione Delle ECLEZIONI (Non vi Sono Clausole EXCEPT O Trul
· Se Si VERIFICA Un'ECLEZIONE VALUEERROR , ESCE

· Può GENERARE UN'ECLEZIONE RUNTIMEERROR


P8 : STRUTTURE DATI COMPLESSE
INSIEM
DEFINIZIONE
·
Un Insieme Iset) è un Tipo contenitore che Memorizza una Rachlta di Valori Univoli : Per DEFINIZIONE Un INSIEME NON PUS' AVERE ELEMENTI DUPLICATI .

·
a Differenza di Una Lista , Gli Elementi lo Membri) di un Insieme Non sono Memorizzati In Allun Ordine Particolare E NON Vi si può accedere PER POSIZIONE

· LE OPERAZIONI PERMESSE SONO LE STESSE DEFINITE SUGLI INSIEMI MATEMATICI

·
Poiché Gli Insiemi Non devono Mantenere Un Ordine Particolare ,
Le OPERAZIONI SU di ESSI Sono Molto Più Veloci DELLE EQUIVALENTI SULLE LISTE
.

CREARE ED USARE INSIEMI


· PER Creare Un INSIEME CON ALCUNI ELEMENTI INIZIALI Si POSSONO SPECIFICARE RACCHIUSI TRA PARENTESI GRAFFE CME IN MATEMATICA
.
, ,

insieme =
SELEMENTO 1
,
ELEMENTO L, ...
Y
· IN ALTERNATIVa
,
Si Può Usare La Funzione Set /I per Convertire Una Qualunque Sequenza (stringa ,
Lista Tupl
, ....
) In un INSIEME
.

listd = [ ... ]
insieme = Set /listal

VALORI AMMESSI NEGLI INSIEMI


· Per RAGIONI Tecniche Legate ALL'IMPLEMENTAZIONE DEL LINGUAGGIO , I VALORI Memorizzati In UN INSIEME Le Le CHIAVI Di UN DIZIONARIO) DEVONO ESSERE :
-IMMUTABILI
-
COMPARABILI

· Si : Numeri (Interio figat ,


Stringhe , Tuple oggetti
,

· No : Liste Dizionari File


,
INSIEMI
, ,

CREARE UN INSIEME VUOTO


· Non è possibile Usare {Y Per Creare un Insieme VUOTO In PITHON ITALE SINTASSI CREA INVECE UN DIZIONARIO Vuoto
· Si USA SEMPLICEMENTE La FUNZIONE Set)) SENZA ARGOMENTI.

· COME PER GLI ALTRI CONTENITORI


,
SI PUO' USARE La FUNZIONE leh)) Per CONOSCERE IL NUMERO DI ELEMENTI IN UN INSIEME :

APPARTENENZA AD UN INSIEME : IN
· Per Scoprire Se Un ELEMENTO È CONTENUTO In Un INSIEME
,
Si USA L'OPERATORE in Oppure IL Suo Inverso, not in :

ACCEDERE AGLI ELEMENTI DI UN INSIEME


· Si Può Usare Un CICLO for ED ITERare Su CIASCUN Elemento for elemento in insieme :

· Poiché Gli Insiemi sono Non ordinati ,


Non Si può accedere Agli Elementi Per Posizione (GMe SI FAREBBE CON Una Lista) d NO insieme [i]

GLI INSIEMI NON SONO ORDINATI


· Si Noti Che L'ordine in Cul Gli Elementi Vengono visitati dipende da Come Essi sono Memorizzati Internamente le IMPREVEDIBILE ED È DIVERSO DALL'ORDINE DI

INSERIMENTO
,
E Può Essere DIVERSO CAMBIANDO Le VERSIONE DI PYTHON) .

VISUALIZZARE UN INSIEME IN MODO ORDINATO


· Si può Usare
La funzione Sorted() , che restituisce Una Lista /Non Un sett degli Elementi ,
Elencati Secondo Un ordinamento DEFINITO INUMERI
CRESCENTI/DECRESCENTI , STRINGHE IN ORDINE ALTABETIC , ...
/
· IL CICLO SEGUENTE STAMPA L'INSIEME IN ORDINE ALFABETICO CRESCENTE : For ELEMENTo in Sorted (insieme :

Print /ELEMENTO
AGGIUNGERE ELEMENTI : God
· GLI INSIEMI sono Collezioni Mutabili ,
Quindi si Possono Aggiungere Elementi Usando Il Metodo add)) : Insieme . God) ) ...

CANCELLARE ELEMENTI : discard-remove-clear


(Se Esiste) : insieme. discard) ...
· IL METODO discard() Rimuove un Elemento Tale Elemento

NON ha ALCUN EFFETTO Se L'ELEMENTO NON ERA PRESENTE .

· IL METODO Remove() Rimuove Un Elemento da un Set (Se Esso Esiste) ,


solleva un'Ellezione Se L'elemento NON Fa Parte DEL Set :

insieme remove l .
... (
· Il METODO Clear() Cancella Tutti Gli Elementi DEL SET, LASCIANDO LINSIEME VUOTO : insieme · Clear /
SOTTO INSIEM
· Un INSIEME Si dice Sotto Insieme di Un ALTRO Insieme ,
Se E Sol Se Ciascun Elemento del PRIMO Insieme È Anche ELEMENTO DEL SECONDO

IL METODO issubSet
· IL Metodo issubsetI) Restituisce True o False Sulla Base del fatto che un Insieme Sia Sottoinsieme di Un altro :

if insieme issubset (insieme2) :


.

VGUAGLIANZA O DISUGUAGLIANZA DI INSIEMI


-

l'uguaglianza
·
Tr Due Insiemi Si verifica Semplicemente CON Gli OPERATORI == E !=

· DUE INSIEMI Sono UGUALI Se E Sol Se HANNO ESATTAMENTE GLI STESSI ELEMENTI
UNIONE DI INSIEMI : Union
· L'UNIONE Di Due INSIEMI CONTENE TUTTI GLI ELEMENTI PRESENTI Nel DUE INSIEMI , ESCLUDENDO I DUPLICATI

Nuovo insieme = insieme1 .


Union (insieme)
·
IL METODO Union /I Restituisce Un Nuovo Insieme Senza Modificare I Due INSIEMI DINVOLTI .

INTERSEZIONE DI INSIEM : intersection


· L'INTERSEZIONE Di Due INSIEMI CANTIENE TUTTI GLI ELEMENTI PRESENTI IN ENTRAMBI GLI INSIEMI .

Nuovo insieme = insieme 1 Intersection(insieme


.

DIFFERENZA TRA DUE INSIEMI : difference


· La DIFFERENZA TRA DUE INSIEMI GENERA UN NUOVO INSIEME Che CONTIENE GLI ELEMENTI DEL PRIMO INSIEME CHE NON SONO NEL SECONDO

Nuovo insieme = insieme1 difference


. (insieme
OPERAZIONI SUGLI INSIEMI

SCORCIATIE PY

SUGGERIMENTO
Nel PROGRAMMI Che DEVONO GESTIRE RACCOLTE DI ELEMENTI UNIVOCI
,
GLI INSIEMI Sono Molto Più EFFICIENTI DELLE LISTE
.
DIZIONARI
DEFINIZIONE
· Un Dizionarid è un contenitore Che Memorizza delle Associazioni Tra Chiavi E Valori (Talvolta CHIAMATO ARRAY Associativo o Mappa
· IGNI CHIAVE NEL DIZIONARIO HA UN VADRE AD ESSA ASSOCIATO

·
Le Chiavi sono uniche Ma un Valore Può Essere Associato a DIVERSE CHIAVI .
,
ES.

SINTASSI PER CREARE DIZIONARI


& · Solitamente
Le Chiavi di Un DIZIONARIO Sono : -STRINGHE
Chiave 1 · Valore 1 -
NUMERI
Valore 2
Chiave 3
Chiave :
: Valore 3
....... · Non C'è Alcun Limite al Tipo di Dati Che può Assumere Il Campo Valore di Un Dizionario

3
Per Creare Un Dizionario vuoto a dizionario = [] oppure dizionario= dical

DUPLICARE DIZIONARI : dictIl


· Si può Creare una copia lun duplicato di un dizionario usando la funzione distil : dizionarioNuovo = dictIdizionaria
NB .
.
Una SEMPLICE ASSEGNAZIONE NON Crea Una Capia ha Semplicemente Un "Alias" , Ossia una Nuova Variabile Che Si riferisce allo Stesso Dizionario
,

ACCEDERE Al VALORI DI UN DIZIONARIO : []


· L'operatore di Indicizzazione Viene Usato per restituire il Valore associato ad una chiave data : dictionary ket

· La CHIAVE PUS ESSERE UNA COSTANTE ,


Una VARIABILE O Un'ESPRESSIONE .

· Si Noti Che il Dizionario Non è un contenitore di Tipo Sequenziale laccesso Elementi Usando solo la Chiave associatal .
· L a Chiave Usata
Se Per Accedere Non Esiste NEL DIZIONARIO SI GENERA UN KeyError

DIZIONARI : VERIFICA DELL'ESISTENZA Di UNA CHIAVE


· Per scoprire Se Una chiave è presente Nel Dizionario Si
,
USA L'OPERATORE in CoppURE not in) DEVITA KeyError

VALRI DI DEFAULT
Per ACCEDERE Ad Un DIZIONARIO Si Può Anche Usare elementedictionary get . /key ,
defarie) asela chiave non viene trovata verrà restituito il valore di detault
.

EQUIVALENTE A if key in dictionary :


element = dictionary [ken]
else :
element = default

AGGIUNGERE O MODIFICARE ELEMENTI


· Un Dizionario è un Contenitore Mutabile

· si può Aggiungere Un Nuovo Elemento Usando L'operatore Di INDICIZZAZIONE INON Si PUs FARE CON LE LISTE !) A dictionary newkey = mewElement

· Per Modificare Il Valore Associato ad una data Chiave Basta impostare un Nuovo Valore con L'operatore Sull CHIAVE ESISTENTE D dictionary Key = MewElement
,

AGGIUNGERE DINAMICAMENTE NUOVI ELEMENTI


Possiamo Aggiungere Elementi ad Un Dizionario con la sintassi dictionary newkey = mewElement
CANCELLARE ELEMENTI
· Per Eliminare Un Elemento da Un Dizionario , chiamare il metodo poli con la chiave da eliminare come Argomento : dictionary .
Pop (Key
· Questo Metodo Cancella sia La chiave che il Valore Associato

·
Il Metodo Popl) restituisce il Valore dell'elemento Cancellato (che può essere Memorizzato in Un'altra Variabile) .

ITERARE SU UN DIZIONARIO
· È Possibile
I terare Su Tutte Le Chiavi di un Dizionario Usando un semplice Ciclo for in . : for key in dizionario : ket assume il valore delle Chiavi

· IL DIZIONARIy Memorizza Le Chiavi NELL'ORDINE DI INSERIMENTO .

· Per ITertre SULLE Chiavi In Ordine Di VADRE DELLA CHIAVE (ALFABETICO O Numericol , Si può Usare la Funzione Sorted() Nel costruire il Ciclo For:

for key in Sorted/dictionary) :

·
PYTHON Permette DI ITERRE SUGLI ELEMENTI (Chiave Valore) In Un Dizionario Usando Il Metodo Items)) ,
il Quale restituisce una Sequenza di TUPLe Che

CONTENGONO Le CHIAVI Ed I Valori Degli Elementi : for tupia in dictionary .


Items)) ,
Allora Aupia = (key element
,

for (key element) in dictionary items)(


RIASSUNTO DIZIONARI ,
.
DIZIONARI COME "ARRAY Associativi"
ARRAY ASSOCIATIVO
POSSIAMO Immaginare IL DIZIONARIO CMe Una LISTA In CUi L'INDICE NON SIA NECESSARIAMENTE NUMERICO

DIZIONARI COME "RECORD DATI


"

MEMORIZZARE RECORD DI DATI


I RECORD DI DATI In CUI CIASCUN RECORD È COMPOSTO Da DIVERSI CAMPI , SONO Strutture MOLTO FREQUENTI IN PUTHON VENCONO USATI I DIZIONARI A Tale scopO.
· , .

DIZIONARI COME RECORD DATI


· Si Crea Un DIZIONARIO Per Ciascun Record dati . Nel Dizionario, la Chiave è il Nome del Campo , ed il varre Contiene i Valeri Associati a Tale Campo.

·
successivamente Si Può Creare Una Lista Con i Dizionari .

LETTURA DA FILE CONTENENTI RECORD DATI


OPER ESTRARRE I RECORD DATI Da UN FILE Possiamo Definire UNA FUNZIONE Che LEGGA Un SINGOLO Record E RESTITUISCA Un DIZIONARIO Appositamente CREATO.
,

LEGGERE I RECORD DI UN FILE (SU COME DIZIONARI

QUANDO LEGGIAMO UN FILE IN FORMATO (SV , POSSIANO LEGGERE Le RIGHE CON L'AUSILIO DI : CSV . reader prestituisce i campi di Una Riga sotto forma
DI LISTA

CSV . DictReader d Restituisce I Campi di Una Riga Sotto FORMA


DI DIZIONARIO

LE CHIAVI DEL DIZIONARIO SONO TRATTE DALLA PRIMA RIGA DEL FILE

ORDINAMENTI AVANZATI
,
OPPURE DAL PARAMETRO OPZIONALE field names

CRITERI DI ORDINAMENTO
PER ORDINAMENTO

DECRESCENTE :

reverse = True
In sort/sorted
CHIAVI DI ORDINAMENTO
· È Possibile specificare Alle Funzioni Sort/Sorted Quale Criterio di ordinamento devono Utilizzare ,
creando quindi degli ordinamenti "personalizzati" : UTILI PER ORDINARE
LISTE DI DIZIONARI
UTILI PER MODIFICARE
L'ORDINAMENTO
NATURALE' PER LISTE

· In Questi Casi Bisogna fornire Una "Chiave di ordinamento"


,
Usando il parametro Key : dizionario .
Sort (ken =... ) DI LISTE

·
La Chiave in generale
, ,
è una funzione , Calcolabile per ogni Singolo Record Idizionario ,
il cui valre dipende sol dai dati in Esso Memorizzati.

· L FUNZIONE SoRT Confronterà Gli Elementi SULLA Base DEL VALORE DELLA FUNZIONE CHIAVE : SENZA CHIAVE D Lista i lista i

CON CHAve a
Key/listdi) Key (lista i)
· L'ordinamento avverrà Quindi Per Valeri Crescenti della Chiave di ORDINAMENTO.

ORDINAMENTO PER CRITERI MULTIPLI


· Qualora IL Criterio Di ORDINAMENTO GINVOLGA Più CAMPI, O Combinazioni Di Chiavi Più Complesse , Si Può Adottare Un Approccio Alternativo : ordinare più Volte La

LISTA , CON Chiavi di ORDINAMENTO DIVERSE


,
PARTENDO DALLE CHIAVI MENO Importanti Per FINIRE CON QUELL Più IMPORTANTE

·
Questo Metodo l'algoritmo
funziona perché di sort E stabile lessia Non Scambia di Posizione Elementi Che hanno Lo Stesso Valore Di Chiave
SCORCIATOIA: USARE FUNZIONI LAMBDA
: Quando definisco una funzione di Ordinamento ,
dovrò Costruire Una funzione Nuova , Assegnare Un Nome
,
e Questa funzione avrà Solitamente sol una Istruzione di return.

GME Scorciatoia
·
,
Posso Definire Una Funzione "ANONIMA In-Line" Con Il ESTRUTTO LIMBDA
.

L'INTERO

MaxtemeYmax/mind
VIENE RESTITUITO
·
inttributo keve è presente anche per ce funzioni mine max DIZIONARIO O LISTA Che CORRISPONDE A

: i un Sinocse

· È UTILE Combinare Itemgetter Con ChUMerate Per Avere Contemporaneamente Valore E Posizione
.

STRUTTURE DATI COMPLESSE


I CONTENITORI Sono Molto Utili per Memorizzare Gruppi di Valori .
Alcuni Tipi di dati POTREBBERO RICHIEDERE ORGANIZZAZIONI Più COMPLESSE Del DATI lotTENUTE COMBINANDO

LISTE
,
INSIEMI
,
DIZIONARI
,
TUPLE) .
MODULI
MODUL

· Quando Creiamo programmi Piccoli Possiamo Scrivere Tutto IL Codice In Un UNIC FILE SORGENTE
.
,

· Quando I programmi Iniziano a diventare più Grandi o Quando si lavora in Gruppo la Situazione cambia
, ,

· VORREMMO RIUSCIRE A STRUTTURARE IL CODICE , DIVIDENDOLO IN FILE SORGENTI SEPARATI "Moduli").


Motivazioni per l'uso del MODULI
· PROGRAMMI GRANDI Possono CONTENERE CENTINALA Di FUNZIONI Che DIVENTANO DIFFICILI DA GESTIRE E DEBUGGARE SE FOSSERO TUTTE IN UN UNIC FILE SORGENTE :
DISTRIBUIRE LE FUNZIONI SU PIÙ FILE SORGENTI E RAGGRUPPARE INSIEME LE FUNZIONI CORRELATE PERMETTE DI FACILITARE DELLE
IL TEST ED IL DEBUG VARIE FUNZIONI

· Un Secondo Motivo DIVENTA Evidente Quando Si lavora con Altri PROGRAMMATORI In Un GRUPPO Di LAVORO.

TIPICA DIVISIONE IN MODULI

· I PROGRAMMI PY Di GRANDI DIMENSIONI TIPICAMENTE CONSISTONO Di Un MODULO PRINCIPALE (Driver Module) Ed Uno o più Moduli SUPPLEMENTARI .

o IL MODULO PRINCIPALE CONTIENE La FUNZIONE Main)) oppure La PRIMA ISTRUZIONE ESEGUIBILE


.

· I MODULI Supplementari Contengono FUNZIONI Di Supporto CSTANTI VARIABILI,


,
, ...

USARE IL CODICE DI ALTRI MODULI


· Per Chiamare Una funzione o Usare una costante definita in Un Modulo , Occorre
Innanzitutto IMPORTARE IL Modulo ,
Nello Stesso Modo In Cri Si IMPORTEREBBE
UN MODULO DELLA LIBRERIA STANDARD : from homefile impor funzione a, funzione , ...

Modural: import homefile


· se un Modulo definisce Molte funzioni ,
può essere più comoda la Forma Rende accessibili Tutti I Nomi definiti Nel

In Questo Caso Bisogna Anteporre Il Nome del Modulo Al Nome delle FUNZIONI .
,

Potrebbero piacerti anche