




























































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Programmazione in Python e modelli
Tipologia: Appunti
1 / 68
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































fornire informazioni ai programmatori;
virgolette, singole o doppie (‘ ‘ “”); print() ci permette di visualizzare un valore;
servono a portare a termine un compito specifico;
che portano alla soluzione di un problema;
possono archiviare informazioni;
variabile;
negativi, 0 è un numero intero;
esponente negativo o positivo;
modifiche durante l’esecuzione del programma (di solito si usa un nome composto da sole lettere maiuscole); % restituisce il resto; // divisione intera, ignorando il resto; ** elevazione a potenza; / divisione;
len() restituisce il numero di caratteri presenti in una stringa; int e float convertono una stringa contenente un numero in tale valore numerico; stringa[n] restituisce il carattere nella posizione n della stringa; s.lower la versione minuscola della stringa s ; s.upper la versione maiuscola della stringa s ; s.replace(old,new) una nuova versione della stringa s nella quale ogni occorrenza della sottostringa old è stata sostituita con new; input() serve per leggere dati forniti in ingresso mediante la tastiera chr(numero) restituisce il carattere corrispondente al numero nella tabella UNICODE ord(carattere) restituisce il numero corrispondente al carattere nella tabella UNICODE s.find(str) calcola la prima posizione di s in cui compare la stringa str. Se la stringa str non compare in s restituisce - s.rfind(str) calcola la prima posizione di s in cui compare la stringa str partendo dalla fine della stringa s. Se la stringa str non compare in s restituisce - s.count(str) calcola quante volte str compare in s
“%d” si usa d per i numeri interi “%5d” vengono aggiunti spazi in modo che l’ampiezza del campo sia uguale a 5 “&05d” inserendo uno 0 prima dell’ampiezza del campo, vengono aggiunti zeri al posto degli spazi “Quality:%5d” i caratteri che si trovano nella stringa ma sono al di fuori di un indicatore di formato vengono visualizzati normalmente “%f” si usa f per i numeri in virgola mobile “%.2f” visualizza due cifre dopo il punto decimale “%7.2f” vengono aggiunti spazi in modo che l’ampiezza del campo sia uguale a 7 “%s” si usa s per le stringhe “%d %.2f” si può imporre il formato desiderato a più valori “%9s” le stringhe vengono allineate a destra, in mancanza di indicazione diversa “%-9s” per allineare a sinistra si usa un carattere – “%d%%” per visualizzare un segno di percentuale si usa %%
if consente ad un programma di compiere azioni diverse in relazione alla natura dei dati che vengono elaborati; il carattere due punti posto dopo una condizione identifica un enunciato composto.
> maggiore >= maggiore o uguale
True True True True False True False False False True False True False False False False Per invertire una condizione si usa l’operatore not. A B A or B True True True True False True False True True False False False
sottostriga in s restituisce True se la stringa s contiene sottostringa , altrimenti False s.count(sottostringa) restituisce il numero di ricorrenze non sovrapposte di sottostringa nella stringa s s.endswith( sottostringa) restituisce True se la stringa s termina con sottostringa , altrimenti False s.find( sottostringa ) restituisce il più basso valore dell’indice nella stringa s dove inizia una occorrenza sottostringa, oppure -1 se sottostringa non ricorre in s
s.startswith(sottostringa) restituisce True se la stringa s inizia con sottostringa, altrimenti False s.isalnum restituisce True se la stringa s è costituita da sole lettere o cifre e contiene almeno un carattere, altrimenti False s.isalpha restituisce True se la stringa s è costituita da sole lettere e contiene almeno un carattere, altrimenti False s.isdigit restituisce True se la stringa s è costituita da sole cifre e contiene almeno un carattere, altrimenti False s.islower restituisce True se la stringa s contiene almeno una lettera e tutte le lettere della stringa sono minuscole, altrimenti False CICLO While Un enunciato while esegue ripetutamente istruzioni, finché una specifica condizione è vera. CICLO for Il ciclo for viene usato per eseguire iterativamente istruzioni sugli elementi di un contenitore (stringa, liste, ecc...) range scandisce ogni singola lettera della stringa
Una funzione è una sequenza di istruzioni a cui viene dato un nome; quando una funzione viene invocata, le vengono forniti i suoi argomenti; il valore restituito è il risultato che ha calcolato. Essa si introduce con def e il suo valore con return_._ Esempio di funzioni in Python def ():
l.insert(posizione,elemento) inserisce nella lista l'elemento nella posizione indicata. Tutti gli elementi che seguono la posizione indicata vengono spostati in avanti di un posto; l.append(elemento) aggiunge l'elemento alla fine della lista; l.index(elemento) restituisce la posizione dell'elemento nella lista; l.remove(elemento) elimina dalla lista l'elemento indicato e sposta all'indietro di un posto tutti gli elementi che lo seguono; l.sort() ordina gli elementi della lista in senso crescente; l.count(elemento) conta quante volte compare l'elemento nella lista; extend(lista) aggiunge alla lista una nuova lista; reverse() rovescia la lista, mettendo gli elementi in ordine inverso;
Per aprire un file, occorre fornire il suo nome, oltre alla modalità di apertura; infile = open(“input.txt”, “r”) per la lettura outfille = open(“output.txt”, “w”) per la scrittura Dopo aver elaborato un file, bisogna chiuderlo; infile.close() outfile.close() Per leggere una riga di testo da un file si usa il metodo readline; line = infile.readline() s=f.read trasforma tutto il file in una stringa; Per scrivere in un file si una il metodo write o la funzione print; outfile.write(“Hello, World!\n”) Per leggere le righe di testo da un file, si può usare un ciclo for che operi sull'oggetto di tipo file for line in infile: print(line) Per eliminare il carattere newline alla fine di una stringa si può usare il metodo rstrip line = line.rstrip() s.lstrip() vengono eliminate i caratteri di spaziatura all'inizio s.lstrip(caratteri) vengono eliminati i caratteri all'inizio s.rstrip() vengono eliminate i caratteri di spaziatura alla fine s.rstrip(caratteri) vengono eliminati i caratteri alla fine s.strip() elimina sia a destra che sinistra i caratteri di spaziatura s.strip(caratteri) elimina sia a destra che sinistra i caratteri Il metodo split suddivide una stringa nelle sue singole parole
I dizionari contengono coppie chiave/valore favoriteColors = {“Romeo”: “Green”, “Adam”: “Red”} In un dizionario, per accedere al valore associato a una chiave si usa l'operatore []. Per verificare se una chiave è presente in un dizionario si usa l'operatore in; usando l'operatore [] si posso aggiungere nuove coppie oppure le si possono modificare; contacts[“John”] = 4578102 Per eliminare una coppia da un dizionario si usa il metodo pop contacts.pop(“Fred”) d = dict() crea un dizionario vuoto o contenente una copia del dizionario c d = dict(c) d = {} crea un nuovo dizionario vuoto o contenente inizialmente le coppie specifiche, ognuna delle quali è costituita da una chiave k e un valore v, separati da un carattere “due punti”. len(d) restituisce il numero di coppie presenti nel dizionario d repr fornisce un mezzo per produrre rappresentazioni di oggetti con limiti imposti sulla dimensione delle stringhe risultanti. chiave in d determina se la chiave appartiene o non appartiene al dizionario d chiave not in d d[chiave] = valore aggiunge una nuova chiave/valore al dizionario d, se chiave non vi è già presente, altrimenti modifica il valore associato alla chiave.
x = d[chiave] restituisce il valore associato alla chiave data, che deve essere presente nel dizionario d, altrimenti viene sollevata un'eccezione; d.get(chiave, predefinito) restituisce il valore alla chiave data, oppure il valore predefinito se la chiave non è presente nel dizionario d; d.pop(chiave) elimina dal dizionario d la chiave e il valore ad essa associato; se la chiave non è presente nel dizionario, solleva un'eccezione; d.values() restituisce una sequenza contenente tutti i valori presenti nel dizionario. d[oggetto][0] restituisce il primo valore della chiave d[oggetto][1] restituisce il secondo valore della chiave
Prima di tutto bisogna importare le funzioni attraverso import re re.search('Mario', elenco) cerca la stringa 'Mario' nella stringa elenco [a-zA-Z0-9 ] un carattere qualsiasi fra lettere minuscole, maiuscole, cifre e lo spazio
gennaio|febbraio|marzo|aprile alternative tra stringhe intere, accetta solo le stringhe date [0-9]{1,2} (gennaio|febbraio|marzo|aprile|maggio|giugno| luglio|agosto|settembre|ottobre|novembre|dicembre) [0-9] {4} scrive una data con il nome dei mesi [0-9]|[a-z] una sequenza di sole cifre oppure una sequenza di sole minuscole {n,m} ripetizioni
. viene definito un carattere qualsiasi re.DOTALL fa includere il ritorno a capo codice=.{10} sequenza codice= seguita da dieci caratteri qualsiasi -?[0-9]+ numero intero, con segno meno opzionale re.IGNORECASE non fa distinzione tra maiuscole e minuscole re.search('Mario', elenco) trova Mario in posizione qualsiasi re.search('^Mario', elenco) trova Mario solo se è all'inizio re.search('$Mario', elenco) trova Mario solo se è alla fine re.split divide una stringa in parti, l'espressione regolare dice dove separare es: [;|] dice che ; e | fungono da separatori print(re.split('[;|]','abcd;efgh|wsl')) stampa: ['abcd', 'efgh', 'wsl'] re.sub rimpiazza le sottostringhe che collimano con l'espressione regolare print(re.sub('(Giorgio|Luca|Alberto)','Gianni', "Questo l'ha fatto Giorgio, questo Alberto, questo Luca"))
stampa: Questo l'ha fatto Gianni, questo Gianni, questo Gianni collimano() la semantica è una funzione matematica data una espressione regolare e: collimano(e) = insieme di stringhe che collimano con l'espressione regolare collimano(abc?) = {ab, abc} collimano(ab) = {b, ab, aab, aaab, … } collimano(ab?|c) = {a, ab, ∅, c, cc, ccc, … } …
import re testo completo dei Malavoglia. In alternativa per ricerche più piccole 'IMalavoglia_50.txt' (prime 50 righe) file = 'IMalavoglia.txt' file2 = 'IMalavoglia_50.txt' Espressione regolare da cercare. In Python il carattere \ va scritto \ esprReg = '[0-9]{1,2} (gennaio|febbraio|marzo|aprile| maggio|giugno|luglio|agosto|settembre|ottobre|novembre| dicembre) [0-9]{4}'
ris = re.finditer(esprReg3,testo,re.IGNORECASE) Stampo espressione regolare e tutti i match con un contatore print('Espressione Regolare:',repr(esprReg3)) i = 1 for m in ris: print(i,':',m.group()) i = i + 1 Parole che iniziano e finiscono con la stessa lettera esprReg4 = '^a-z[a-z]\1[^a-z]' ris = re.finditer(esprReg4,testo2,re.IGNORECASE) Stampo tutti i match con un contatore print('Espressione Regolare:',repr(esprReg4)) i = 1 for m in ris: print(i,':',m.group()) i = i + 1 Parole che contengono tre doppie esprReg5 = '[^a-z][a-z]([a-z])\1[a-z]([a-z])\2[a- z]([a-z])\3[a-z]*[^a-z]' calcolo tutti i match con la findall. Restituisce solo i caratteri che corrispondono ai gruppi ris = re.findall(esprReg5,testo2,re.IGNORECASE) Stampo tutti i cartatteri print('Espressione Regolare:',repr(esprReg5)) print('Numero di stringhe trovate', len(ris), 'caratteri corrispondenti', ris)
per creare una lista di liste tutte della stessa lunghezza l4 = [[0]4] print('\nl4=',l4) l4= [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] in alternativa per creare una lista di liste tutte della stessa lunghezza l5 = [[0 for i in range(3)] for i in range(4)] print('\nl5=',l5)