




























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
Appunti sintetici sulla programmazione in Python: descrizione, modi d'uso ed esempi riguardanti le strutture principali del linguaggio (stringhe, liste, tabelle, insiemi, dizionari...). Gli appunti sono un riassunto delle slide fornite dai professori (uguali per tutti i corsi).
Tipologia: Appunti
1 / 36
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























dell’informazione Ø rappresentazione: il computer non è in grado di vedere un’immagine e fare qualcosa su di essa se non la si converte in un modo in cui possa capire > ragiona in termini di 0 e 1, è in grado di capire 2 simboli (0,1) => info devono essere convertite perché siano comprese Ø manipolazione: una volta che si ha un dato già codificato si deve dire al computer, anche chiamato elaboratore elettronico (macchina “ottusa” > fa ciò che le si dice si fare ma fa anche calcoli in maniera veloce, se c’è errore o problema è un errore del programmatore) come elaborarlo INPUT = dati OUTPUT = risultati (si ottengono attraverso il calcolo/elaborazione) 1 fase: codificare dati in input che passano all’elaboratore (codifica come sequenza di 0 e 1) 2 fase: come si codificano gli ordini sotto forma di sequenza di operazioni 3 fase: come decodificare i risultati in un formato comprensibile all’utente umano => decodificare e rinvertire in un formato comprensibile all’essere umano Passaggio al digitale: tutte le info convertite in sequenze di 0 e 1 (= info digitale) => tutto viene convertito in bit (può memorizzare al suo interno un solo valore, o 0 o 1) Byte: aggregazione di 8 bit (es. 01101100) Con opportuna sequenza di bit si possono memorizzare e rappresentare tutte le info del mondo attuale
per memorizzare una lettera, un suono basta 1 bite per memorizzare musica migliorando la qualità, 2 bite In base allo spazio: info di qualità più o meno elevata Oltre ad aspetti di efficienza ci sono aspetti di permanenza del dato Gli elaboratori o calcolatori elettronici sono dotati di due componenti (l’una ha bisogno dell’altra):
o input: dispostivi che acquisiscono un segnale di ingresso da parte dell’utente e collegati a porte del sistema (mouse, tastiera, stampante, microfono) o output: permettono di comunicare all’utente il risultato di un’elaborazione Tutte le componenti sono collegate tra loro da fili che trasportano le informazioni. SOFTWARE
Elementi principali dei flow chart:
All’inizio degli anni ’90 Guido van Rossum progettò il linguaggio di programmazione Python. Van Rossum non era soddisfatto dei linguaggi esistenti, ottimizzati per scrivere grandi programmi, eseguibili in modo efficiente ma voleva un linguaggio che permettesse di creare rapidamente i programmi e anche modificarli in modo semplice. Progettato per avere una sintassi più semplice e pulita degli altri linguaggi come Java, C and C++ (più facile da apprendere), l’ambiente Python aveva un approccio “batterie comprese”, offrendo subito la disponibilità di molte funzioni utili in modo standard => Python è un linguaggio interpretato, che rende più facile lo sviluppo ed il test di brevi programmi I programmi Python sono eseguiti dall’interprete Python, che legge il programma e lo esegue. Sistema integrato di sviluppo per creare un programma: IDE PyCharm Componenti di un IDE:
Per definire una variabile è necessario dire all’interprete:
assegnato un valore iniziale > si nomina con lettere MAIUSCOLE
(il compilatore li ignora)
STRINGHE = sequenze di caratteri racchiuse tra virgolette (“…”) o tra apici singoli (‘…’) Le stringhe sono immutabili in Python: non possono essere modificate dopo la loro creazione (ma si può aggiornare una stessa variabile e riferirla a un’altra stringa): si genera l’errore TypeError Lunghezza della stringa = numero di caratteri della stringa > si può calcolare con la funzione len() Una stringa di lunghezza 0 è detta stringa vuota: non contiene caratteri (“” o ‘’), nemmeno uno spazio CONCATENAZIONE DI STRINGHE (+) > si può aggiungere una stringa alla fine di un’altra (ad es. si può aggiungere uno spazio tra due stringhe) N.B: “+” (usato per concatenare le stringhe) è un esempio di operator overloading = svolge diverse funzioni, a seconda dell’utilizzo e del tipo di valori coinvolti:
intero + intero: addizione intera float (virgola mobile) + float oppure float + intero: addizione float stringa + stringa: concatenazione di stringhe lista + lista: concatenazione di liste MA stringa + numero intero: errore RIPETIZIONE DI STRINGHE () > si può creare una stringa composta da un’altra stringa ripetuta n volte Anche “” è un tipo di operator overloading CONVERSIONE DA NUMERO A STRINGA: str() CONVERSIONE DA STRINGA A NUMERO (importante quando le stringhe sono fornite in input dall’utente)
Porzioni con ‘passo’ diverso da 1 Nelle porzioni è possibile indicare un terzo argomento: stringa[ start : stop : step ] stringa[ n : m : p ] Se step = p => vengono restituiti i valori compresi tra n e m con passo p Se step negativo => invece di spostarmi in avanti ad ogni passo, mi sposto indietro => prendo gli elementi in ordine inverso => occorre avere n > m es. stringa[: : - 1] → restituisce tutta la stringa in ordine inverso CARATTERI I caratteri sono memorizzati come valori interi (es. la lettera ‘H’ ha il valore ASCII 72) Python usa i caratteri Unicode: Unicode definisce oltre 100,000 caratteri ed è capace di codificare il testo in tutte le lingue scritte o CODICI ASCII o CODICI Unicode Per convertire i singoli caratteri dal formato stringa al valore numerico ASCII/Unicode: ord() → ha come argomento un carattere Unicode (stringa) e restituisce un intero che rappresenta il valore Unicode di quel carattere (è l’inverso di chr() ) es. ord(‘a’) restituisce l’intero 97 ord(‘€’) restituisce 8364 Per convertire un valore ASCII/Unicode dal valore numerico al carattere corrispondente in formato stringa: chr() → ha come argomento un numero intero e restituisce la stringa rappresentante il carattere a cui quel numero intero è associato nel codice Unicode (è l’inverso di ord() ) N.B: il range valido per l’argomento va da 0 a 1.114.111 (0x10FFFF in base 16) > se l’intero (argomento) è fuori dal range: ValueError es. chr(97) restituisce la stringa ‘a’ chr(8364) restituisce la stringa ‘€’ METODI PER STRINGHE Python è un linguaggio orientato agli oggetti (object-oriented), ossia entità software rappresentanti valori aventi un determinato comportamento => tutti i valori sono oggetti Ogni oggetto può avere metodi , ossia funzioni (sequenze di istruzioni) che possono essere chiamate su quegli oggetti specifici, usando la sintassi object.method() s.lower() → restituisce la versione minuscola della stringa s s.upper() → restituisce la versione maiuscola della stringa s s.replace( old , new ) → restituisce una nuova versione della stringa s in cui ogni occorrenza della sottostringa old è stata sostituita dalla stringa new Metodi Funzioni Diversi metodi sono specifici per diversi tipi di oggetti Le funzioni sono generali e possono accettare argomenti di diverso tipo I metodi sono chiamati con la notazione del punto (dot-syntax) Le funzioni sono chiamate direttamente, con un elenco di parametri I metodi restituiscono un risultato che può essere salvato in una variabile Le funzioni restituiscono un risultato che può essere salvato in una variabile
Per ottenere output più chiaro e ordinato da visualizzare: § concatenazione di stringhe § operatore di formattazione % → indicatore di formato:
possono contenere campi sostituibili, nella forma di espressioni racchiuse tra { } => sono espressioni valutate al momento dell’esecuzione es. f "il risultato è {risultato}" → il risultato è 5 (variabili definite nelle linee di codice precedenti) f "la somma è {a+b}" → la somma è 15 (espressioni aritmetiche che coinvolgono una o più variabili o valori precedentemente definiti) f "il risultato è {risultato=}" → il risultato è risultato=5 (aggiungendo il simbolo =, viene inserito anche il nome della variabile) Si può modificare il formato in cui vengono stampati i valori, utilizzando degli specificatori di formato,
Per stampare un numero reale con un determinato numero di cifre decimali si usa il formato: N.B: round() ≠ f “{ :f}” round() per arrotondare in formule matematiche, f “{ :f}” per stampare in modo più ordinato e flessibile Parametri opzionali (“named parameters”) della funzione PRINT : o sep= → definisce il separatore da usare se si stampano diversi valori default: spazio ‘ ’ print(hour, min, sec, sep= ':' ) o end= → definisce cosa stampare alla fine della riga (ad es. se si vogliono stampare diversi elementi sulla stessa riga evitando l’ “a capo”) default: a capo ‘\n’ print( 'Hello' , end= '' )→ stampa stringa vuota dopo gli argomenti, al posto di un “a capo”
ISTRUZIONE IF In un programma è spesso necessario prendere delle decisioni in base al valore di ingresso o di variabili interne. Le due keyword che permettono di realizzare un costrutto condizionale sono: o if o else SINTASSI if condizione: if condizione: enunciati 1 enunciati else : enunciati 2
N.B: istruzione pass : istruzione ‘speciale’ che non fa nulla ma permette di costruire lo scheletro (corretto) della logica di funzionamento > poi successivamente le istruzioni vengono riempite VARIABILI E OPERATORI BOOLEANI VARIABILI BOOLEANE: - possono essere solo Vere oppure False (bool è un tipo di dato in Python: può avere i valori True e False)
CICLI I cicli sono utilizzati per ripetere diverse volte lo stesso blocco di istruzioni, con valori diversi delle variabili e fino a quando una “condizione di ciclo” rimane vera (True)
Il ciclo esegue istruzioni finché la condizione (riportata dopo ‘while’) è vera !!! balance = 10. TARGET = 100. year = 0 RATE = 5. while balance < TARGET : year = year + 1 interest = balance * RATE/ 100 balance = balance + interest Ciclo controllato da: o contatore → conta il numero di ripetizioni effettuate e si ferma quando sono state completate un numero predefinito di iterazioni (può essere inizializzato a 0 o a 1) o evento = condizione → prima o poi la condizione diventa falsa => il ciclo termina N.B: esistono anche cicli misti, controllati non solo da un contatore e/o da un evento ⚠ Errori comuni:
WHILE: ciclo sull’indice FOR: ciclo sul valore Funzione ENUMERATE : indice e valore insieme → ad ogni iterazione restituisce una coppia di valori (indice, valore) for (i, lettera) in enumerate(nome): print(i, lettera) Il ciclo for può “estrarre” entrambi i valori, che si potranno utilizzare nel corpo dell’iterazione. CICLI ANNIDATI Per problemi più complessi: annido un ciclo all’interno di un altro => il ciclo annidato sarà indentato all’interno del blocco di codice dell’altro ciclo (es. analisi delle celle di una tabella: il ciclo più esterno itera sulle righe della tabella, il ciclo più interno processa le colonne nella riga corrente)
Una funzione è una sequenza di istruzioni a cui viene dato un nome. Per eseguire le istruzioni di una funzione è necessario invocarla. Quando una funzione termina, il risultato ottenuto è restituito dalla funzione e può essere usato in un’espressione.
return: termina la funzione e restituisce il risultato
Alternativa ai return multipli: memorizzare il risultato in una variabile (anche in più punti della funzione) e restituire il valore della variabile nell’ultima istruzione della funzione Funzioni che non restituiscono un valore Le funzioni non sono obbligate a restituire un valore: possono generare un output e terminare senza trasmettere un valore => non è richiesta alcun’istruzione return Se l’enunciato return non viene incontrato durante l’esecuzione della funzione, è equivalente ad avere un return vuoto dopo l’ultima istruzione della funzione. Se si vuole far terminare una funzione che non restituisce un valore prima che sia giunta alla fine della sua sequenza di istruzioni, si può usare un enunciato return senza fornire un valore FUNZIONE MAIN Quando si definiscono e usano funzioni in Python, è bene che tutte le istruzioni del programma si trovino all’interno di funzioni => si usa la funzione main come punto di partenza dell’esecuzione Serve un’istruzione nel programma che la invochi: main() → al di fuori di tutte le definizioni AMBITO DI VISIBILITÀ DELLE VARIABILI = porzione del programma dove esse sono visibili Le variabili possono essere dichiarate: o dentro una funzione = variabili locali
LISTE Una lista è una struttura dati versatile e dinamica, che contiene un numero variabile di elementi a cui si può accedere tramite la loro posizione (indice) SINTASSI Per creare una lista: [ valore1 , valore2 , ...] Per accedere a un elemento: lista [ indice ] es. list1 = [ ] → lista vuota list2 = [32, 54, 67, 29, 35, 86] → lista con valori iniziali secondo_elemento = list2[ 1 ] → accedo all’elemento della lista in posizione 1 list2[ 1 ] = 58 → se voglio cambiare un elemento della lista N.B: liste ≠ stringhe: le liste possono contenere valori di ogni tipo e sono mutabili (il valore di ogni elemento può essere aggiornato, si possono aggiungere/eliminare elementi); le stringhe sono sequenze esclusivamente di caratteri e sono immutabili (non è possibile cambiare caratteri nella sequenza) Errori “Out-of-Range”: si verificano quando si accede ad una lista fuori dall’intervallo consentito (ad es. accesso ad un elemento che non esiste) → ricordarsi che gli indici partono da 0 !!! Stampare una lista: una lista può essere passata come argomento alla funzione print()
values = [ 1, 2, 3 ] print(values) [1, 2, 3] print(values[0]) 1 Determinare la lunghezza di una lista: la funzione len() permette di ottenere la lunghezza della lista (= numero dei suoi elementi) num_elements = len(values) Uso delle parentesi quadre: