Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizi di programmazione in Python: manipolazione di matrici e conversione di numeri, Appunti di Fondamenti di informatica

Programmazione in Python e modelli

Tipologia: Appunti

2018/2019

Caricato il 22/01/2019

tonto.99
tonto.99 🇮🇹

2

(2)

2 documenti

1 / 68

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
APPUNTI DI
INFORMATIC
A
MODELLI E PYTHON
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44

Anteprima parziale del testo

Scarica Esercizi di programmazione in Python: manipolazione di matrici e conversione di numeri e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

APPUNTI DI

INFORMATIC

A

MODELLI E PYTHON

COMANDI DI PYTHON

# rappresenta un commento e non sono enunciati: servono a

fornire informazioni ai programmatori;

stringa : è una sequenza di caratteri racchiusa da una coppia di

virgolette, singole o doppie (‘ ‘ “”); print() ci permette di visualizzare un valore;

funzione : è un insieme di istruzioni di programmazione che

servono a portare a termine un compito specifico;

pseudocodice : una descrizione informale di una sequenza di passi

che portano alla soluzione di un problema;

variabile : è una zona di memoria, dotata di un nome, in cui si

possono archiviare informazioni;

enunciato di assegnazione: memorizza un valore in una

variabile;

Numeri in Python : int, sono tutti i numeri interi sia positivi che

negativi, 0 è un numero intero;

float , sono tutti i numeri frazionari, in notazione esponenziale, con

esponente negativo o positivo;

costanti: si usano per quei valori che non sono soggetti a

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;

  • sottrazione;
  • addizione;

STRINGHE

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

OPERATORE DI FORMATO PER STRINGHE

“%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 %%

L’ENUNCIATO if

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.

OPERAZIONI RELAZIONALI

> 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

ANALISI DI STRINGHE

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

FUNZIONI

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;

APRIRE UN FILE

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

DIZIONARI

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

ESPRESSIONI REGOLARI

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

  • ripetizione (va messa praticamente sempre, a meno che non si voglia avere un carattere solo) [^-] carattere qualsiasi tranne – m = re.search('(Mario) ([A-Za-z]) ([0-9])', elenco) si può usare group(n) invece di group() per trovare una parte degli insiemi di m m.group(1)=(Mario) m.group(2)=([A-Za-z]*) invece m.group() è tutto, uguale a m.group(0)

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, … }  …

ESPRESSIONI REGOLARI IN PYTHON

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)

MATRICI

 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)