Informatica - Python
Informatica - 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
PROGRAMMARE
CONSISTE NELLO SCRIVERE UN FILE SORGENTE CHE DESCRIVE LA SOLUZIONE AL PROBLEMA CONSIDERATO. IN GENERALE ,
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 .
CARATTERISTICHE
· NON AMBIGUO : La PRECISIONE È DELLA MASSIMA IMPORTANZA
·
ESEGUIBILE : L'ALGORITM DEVE POTER ESSERE SLOLTO
LINGUAGGI
LIVELLI DI ASTRAZIONE
ESCRIPT ,
PITA.
ASSEMBLER
·
GLI ELEMENTI SONO ISTRUZIONI MILBOARCHITETTURALI
· ISTRUZIONI Di CONTROLL del Flusso : Permettono L'ESECUZIONE Di OPERAZIONI COMPLESSE , CONIBLUNDO L'ESECUZIONE DI ISTRUZIONI ELEMENTARI .
·
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
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
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,
·
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
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
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
NOMI
I NOMI DELLE Variabili Devono Iniziare CN Una LETTERAO CON Il CARATTERE ) ( ,
I Successivi Possono essere Lettere, NUMERI O UNDERSCORE
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
ARITMETICA
OPERATORI ELEMENTARI
· ADDIZIONE D
· SOTTRAZIONE-D-
*
& MOLMIPLICAZIONE -D
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
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
MODULI
2) sono 3 Modi per Importare Le Funzioni Dal Moduli : 1 .
from Modulo import 81 81 83 .
, , ...
DIMPORTALE FUNZIONI On 81 ,
,
.
. 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
cos(x) ,
sin(x) , tan()dfunzioni goniomentiche linsidiani
exp(x) =
Dex
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
...
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 .
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
-
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 :
SPECIFICATORI DI FORMATO
· CARATTERE : S
'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 .
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
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
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 .
INDENTAZIONE INFERIORE ,
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
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 .
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
-
FALSE
,F TRED ...
È Possibile ANNIDARE Un If ALL'INTERNO di Una delle DUE DIRIMAZIONI DI UN ALTRO IF
FALSE TRUE
IF
*
HAND TEALING .
· 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
↑AlSy
E
Falso
L ↓
*
ISTRUZIONE PASS
=
VARIABILI BOLEANE
· UNA VARIABILE BOOLEANA PUS ESSERE SOLO VERA O FALSA
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
PROPRIETA'
Banda ·
Associativa : And Band = (aandi) and c = A and 1 and e) distributiva Aand /Bor2) = And Bora and 2
·
Commutativa : A andB =
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
boolfrat)
- = True se e solose Flat !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
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
-
·
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
mm
... ANCHE SE NON SONO STATE FANE TUTTE LE ITERAZIONI NECESSARIE .
-
CONTINUE M NON VIENE COMPLETATA L'ITERAZIONE CORRENTE
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
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.
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
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 .
ES ,
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 DEL PRIMO MATCH :
E DELL'ULTIMO :
·
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 !
·
DENTRO I MODULI DELL LIBRERIA STANDARD (MATH ,
STRING , RANDOM, ... (
CREAZIONE E COLLAUDO FUNZIONE
·
SCELGO NOME FUNZIONE
·
CREO VARIABILI ARGOMENTS
PASSAGGIO DI PARAMETRI
LE FUNZIONI RICEVONO GLI ARGOMENTI DELL'INVOCAZIONE DELLA FUNZIONE .
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
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
COGNI RIMO della funzione Deve TERMINARE CON Un RETURN /oppure Uno Unico Fuori Dagli IE/wHEl ...
·
INDICARE UNA LISTA Di TUTTI GLI INPUT DELLA FUNZIONE
·
TESTARE LA FUNZIONE COME ELEMENTO ISOLATO .
-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
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)
nomelista = [Vala ,
Vale , . . . Crea Una Lista Con dei Valori iniziali
LISTE US STRING .
·
SIA LELISTE Che LE STRINGHE SONO SEQUENZE E L'OPERATORE [] VIENE USATO PER ACCEDERE AD UN ELEMENTO IN QUALSIASI SEQUENZA
.
ERRORI
"OUT-OF-RANGE" D SIVERIFICA QUANDO SI ACCEDE Ad UNA LISTA FUORI DALL'INTERVALLO CONSENTITO.
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
.
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
.
INDICI NEGATIVI
PY PERMETTE AGLI INDICI NEGATIVI DI ACCEDERE ALLA LISTA DI ELEMENTI IN ORDINE CONTRARIO
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 .
CONCATENAZIONE
La CONCATENAZIONE di DUE LISTE CREA UNA NUOVA LISTA Che CONTIENE GLI ELEMENTI DELLA PRIMA LISTA SEGUITI DA QUELLI DELL SECONDA
REPLICAZIONE
*
La REPLICAZIONE DI UNA LISTA GENERA MOLTE CPIE DEL SUOI ELEMENTI ISIMILMENTE ALLA REPLICAZIONE DELLE STRINGHE) .
liStaNWord = liSta M
Il Contrario E !
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
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
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]
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
-
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
DEFINIRE TUPLE
tupid =
) ........... ) Oppure (MENo ELEGANTE) tupid =..........
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
ADATTAMENTO DI ALGORITMI
ADATTARE ALGORITMI
FINO Ad ORA POSSONO ESSERE MANIPOLATIED ADATTATI SECONDO NECESSITÀ
GLI ALGORITMI VISTI
TABELLE
Le LISTE POSSONO ESSERE USATE PER CONTENERE DATI IN DUE DIMENSIONI (2D) ,
COME In Un FOGLIO Di CALCOLO DMATRICI
I CONFRONTO DELLE SINGOLE RIGHE AVVIENE UTILIZZANDO L'ALGORITMO DI CONFRONTO DELLE LISTE .
CREARE UN ALIAS
alids = table
COPIA SUPERFICIALE (SHALlow)
· Shallow = List (table
· Shallow = + table
·
Shallow = Copy .
Copy(table) ddal Modulo copt
·
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
RICERCA FILE
IL FILE VIENE CERCATO NELLA CARTELLA IN CUI VIENE AVVIATS PY
·
Metodi Per LEGGERE UNA PARTE DEL FILE ,
PARTENDO DALLA POSIZIONE DEL "CURSORE" : 81 Sole CARATTERE Variabile . (1)
Read
· N CARATTERI CONSECUINI variabile . Read (N)
DopoLa LETTURA Il CURSORE VIENE FATTO AVANZARE FINO AL PRIMO CARATTERE NON ANCORA LETTO
,
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 .
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
.
IL Terminatore di Riga) .
· È 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.
LEGGERE PAROLE
Talvolta è NECESSARIO LEGGERE Le SINGOLE PAROLE Da Un FILE Di TESTO .
Se DOBBIAMOKSolare Le PAROLE Dal SEGNI di PUNTEGGIATURA , POSSIAMO
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
IL FORMATO Più COMUNE MEMORIZZA UN RECORD DATI IN OGNI LINEA DEL FILE .
I CAMPI SONO SPESSO SEPARATI DA UN DELIMITATORE SPECIFICY
IN ALTERNATIVA I RECORD POSSONO ESSERE ORGANIZZATI ANCHE CON UN CAMPO PER LINEA MENTRE UNA LINEA VUOTA INDICA LA FINE DEL RECORD.
,
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 :
N B. . TUTTA L'ELABORAZIONE DEL FILE /LETTURAO SCRITTURA DEL FILE DEVE AVVENIRE DENIN IL CORPO DEL BLOCK With
-
from csv import reader
· L Funzione reader del Modulo Est Riceve Come Argomento Il Riferimento A Un FILE /Già Aperto In LETTUR E RESTITUISCE UNo Speciale OGGETTO
2 METODI : -
dati = []
for row in Csv Reader :
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
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 .
-
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 .
-
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
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
GESTIRE LE ECLEZIONI
· TUTTE LE ECCEZIONI DOVREBBERO ESSERE GESTITE DA QUALCHE PARTE DEL PROGRAMMA
· 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
·
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
- 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
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
· È 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
SINTASSI
·
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
·
Poiché Gli Insiemi Non devono Mantenere Un Ordine Particolare ,
Le OPERAZIONI SU di ESSI Sono Molto Più Veloci DELLE EQUIVALENTI SULLE LISTE
.
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
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 :
INSERIMENTO
,
E Può Essere DIVERSO CAMBIANDO Le VERSIONE DI PYTHON) .
Print /ELEMENTO
AGGIUNGERE ELEMENTI : God
· GLI INSIEMI sono Collezioni Mutabili ,
Quindi si Possono Aggiungere Elementi Usando Il Metodo add)) : Insieme . God) ) ...
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 :
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
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.
3
Per Creare Un Dizionario vuoto a dizionario = [] oppure dizionario= dical
· 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
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
.
· 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
,
·
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
· Per ITertre SULLE Chiavi In Ordine Di VADRE DELLA CHIAVE (ALFABETICO O Numericol , Si può Usare la Funzione Sorted() Nel costruire il Ciclo For:
·
PYTHON Permette DI ITERRE SUGLI ELEMENTI (Chiave Valore) In Un Dizionario Usando Il Metodo Items)) ,
il Quale restituisce una Sequenza di TUPLe Che
·
successivamente Si Può Creare Una Lista Con i 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
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
·
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.
·
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
.
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
, ,
· Un Secondo Motivo DIVENTA Evidente Quando Si lavora con Altri PROGRAMMATORI In Un GRUPPO Di LAVORO.
· I PROGRAMMI PY Di GRANDI DIMENSIONI TIPICAMENTE CONSISTONO Di Un MODULO PRINCIPALE (Driver Module) Ed Uno o più Moduli SUPPLEMENTARI .
In Questo Caso Bisogna Anteporre Il Nome del Modulo Al Nome delle FUNZIONI .
,