Diario delle esercitazioni (Spognardi)
Laboratori via Tiburtina 205, ore 9->13 (canale Sterbini) e 14->18 (canale Monti)
Mer 18 dicembre 2019: simulazione di esame
Prova d'esame proposta in aula:
prova.zip
Correzione:
es12.zip
Correzione streaming youtube canale Monti:
https://youtu.be/DjEX2kPXIlQ
Correzione streaming youtube canale Sterbini:
https://youtu.be/oqAqM18oBBU
Mer 11 dicembre 2019: ricorsione
Pacchetto zip con tutti gli esempi visti in classe:
es11.zip
Streaming youtube canale Monti:
https://youtu.be/OUuV9JYiuz4
Streaming youtube canale Sterbini:
https://youtu.be/n3iS0ws1n_Y
Mer 4 dicembre 2019: ricorsione su liste, numeri, stringhe e alberi
Pacchetto zip con tutti gli esempi visti in classe:
es10.zip
Streaming youtube canale Monti:
https://youtu.be/ZK-1dxTJ8rk
Streaming youtube canale Sterbini:
https://youtu.be/NQaQkPcavQE
Mer 27 novembre 2019: classi, immagini e ricorsione
Pacchetto zip con tutti gli esempi visti in classe:
es9.zip
json file:
https://jsonplaceholder.typicode.com/todos
Streaming youtube canale Monti:
https://youtu.be/oMe6J5k9ji8
Streaming youtube canale Sterbini:
https://youtu.be/elzc57X9qkU
Mer 20 novembre 2019: matrici e immagini
Pacchetto zip con tutti gli esempi visti in classe:
es8.zip
Streaming youtube canale Monti:
https://youtu.be/HWwixyJ06oI
Streaming youtube canale Sterbini:
https://youtu.be/HizaRiiNPjE
Mer 13 novembre 2019: file e stringhe, matrici, immagini
Pacchetto zip con tutti gli esempi visti in classe:
es7.zip
Streaming youtube canale Monti:
https://youtu.be/iVzDqipXkUk
Streaming youtube canale Sterbini:
https://youtu.be/DiHNBn3MrMw
Esercizi per allenarsi:
- Scrivere una funzione che prende due matrici di numeri come liste di liste e ne calcola una terza che è il prodotto righe colonne.
- Scrivere una funzione che prende una matrice di numeri come lista di liste e restituisce True se la matrice è simmetrica, False altrimenti.
- Scrivere una funzione
disegna_quadrato_colorato(imm, x1, y1, x2, y2, colore_bordo, colore_interno)
che prende
- una immagine imm come lista di liste di tuple di colore
- due punti x1,y1 e x2,y2 corrispondenti a due spigoli di un rettangolo
- due tuple di colori colore_bordo e colore_interno
e modifica la immagine imm disegnando il rettangolo individuato dai due punti x1,y1 e x2,y2, usando colore_bordo per il perimetro del rettangolo e colore_interno per l'area. La funzione ritorna il numero di pixel modificati in imm.
- Scrivere una funzione
scala_di_grigi(imm)
che prende un'immagine imm come lista di liste di tuple di colore e la modifica trasformandola in scala di grigi, usando la "formula colometrica".
- Scrivere una funzione
disegna_quadrati(imm, lista)
che prende prende un'immagine imm come lista di liste di tuple di colore e la modifica disegnando tutti i quadrati elencati nella lista, nell'ordine in cui sono presenti. Ogni elemento della lista è del tipo (x, y, lato, colore), dove x,y è lo spigolo in alto a sinistra dove disegnare il quadrato, lato è la lunghezza in pixel del quadrato da disegnare e colore è una tupla di colore corrispondente al colore del quadrato da disegnare.
- Esempio di lista di quadrati: [(20,20,40,(255,255,255)), (30,30,30,(180,180,180)), (40,40,20,(100,100,100))]
Mer 30 ottobre 2019: differenza fra soluzione lineare e quadratica, file
Pacchetto zip con tutti gli esempi visti in classe:
es6.zip
Streaming youtube canale Sterbini:
https://youtu.be/czxhtNPaiQI
Streaming youtube canale Monti:
https://youtu.be/SomLPtl5pmk
Mer 23 ottobre 2019: dizionari, cicli for
Streaming youtube canale Sterbini:
https://youtu.be/hhlMn3qcy-I
Streaming youtube canale Monti:
https://youtu.be/3S-ZZO-_KsY
Nota: durante la lezione di Sterbini si è vista una versione del mio codice per l'Homework opzionale 1. Se lo state cercando, ecco il link al momento preciso:
https://youtu.be/hhlMn3qcy-I?t=18m59s
chiaramente ne parleremo durante la prossima esercitazione.
Pacchetto zip con tutti gli esempi visti in classe:
es5.zip
Esercizi per allenarsi:
- Scrivere una funzione che prende un dizionario e ritorna il dizionario invertito, in cui per ogni valore del dizionario in input c'è una chiaveil cui valore è la lista delle chiavi del dizionario in input che hanno quel valore.
- Scrivere una funzione che prende una stringa contenente una serie di parole separate da spazi e costruisce un dizionario in cui le chiavi sono le ultime lettere delle parole della stringa e i valori ad esse associati sono liste con le parole che terminano con quella lettera. Le liste devono essere ordinate lessicograficamente.
Ad esempio, per la stringa "in verità non mi par vero affatto" deve restituire {'o':['affatto','vero'], 'n':['in','non'], 'à':['verità'], 'i':['mi'], 'r':['par']}
- Scrivere una funzione che prende un dizionario in cui ogni chiave è una stringa ed il valore è un intero e restituisce la lista ordinata di tutte le chiavi a cui corrisponde un valore pari.
Ad esempio, per il dizionario
{ ’topolino’:12, ’pluto’:3, ’minnie’:7, ’pippo’:4, ’qui’:3 }
la funzione deve restituire la lista [’pippo’,’topolino’].
- Scrivere una funzione che prende un dizionario del tipo {chiave:lista interi} e restituisce un nuovo dizionario con le stesse chiavi ma come valore la media degli interi nella lista del dizionario originale.
- Scrivere una funzione che prende due dizionari chiave:lista e ritorna un nuovo dizionario in cui sono presenti solo le chiavi presenti in entrambi i dizionari in input e i valori sono la lista data dall'unione delle due liste in input, associate alla stessa chiave
Mer 16 ottobre 2019: liste, for, insiemi e complessità
Streaming youtube canale Sterbini:
https://youtu.be/yBBunTZX_Bk
Streaming youtube canale Monti:
https://youtu.be/K2lraNqfuFU
Esercizio di verifica:
esercizio.zip
Pacchetto zip con tutti gli esempi visti in classe:
es4.zip
Esercizi per allenarsi:
Per gli esercizi con le liste, se possibile, scrivere sia la versione CON che quella SENZA "range" e, se possibile, scrivere sia la versione con FOR sia la versione con WHILE.
- Scrivere una funzione che presa una lista di interi restituisca il numero dei valori valle, considerando che un elemento si definisce valle se s[i] <s[i-1] e s[i]<s[i+1]
Esempio: l'input [1,3,1,5,6,4,7,1,8] restituisce 3
- Scrivere una funzione che presa una lista di interi, la modifica in modo che non contenga elementi che sono multipli di 3. Attenzione: LA MODIFICA e NON ne crea una nuova...
- Scrivere una funzione che prende una stringa e SENZA USARE I CICLI ritornal'insieme dei caratteri che formano la stringa.
- Scrivere una funzione che prende due stringhe che rappresentano una sequenza di interi separati da virgole e restituisce una stringa nello stesso formato di quelle in input che contiene contenente soltanto gli elementi della prima stringa che hanno il loro quadrato nella seconda lista, ordinati
Esempio: "2,5,3,11" e "19,25,4,181" restituisce la stringa "2,5"
- Scrivere la funzione intreccia che prende due stringhe e ritorna una nuova stringa che è l'intreccio delle due passate in input. Esempio:
>>> intreccia("abc","efg")
aebfcg
>>> intreccia("abcd", "efghijk")
aebfcgdhijk
Mer 9 ottobre 2019: stringhe, liste e correzione esercizi
Streaming youtube canale Sterbini:
https://youtu.be/1M-EuM6EHtQ
Streaming youtube canale Monti:
https://youtu.be/9I04TqswQS0
Pacchetto zip con tutti gli esempi visti in classe:
es3.zip
Esercizi per allenarsi:
Per gli esercizi con le liste, se possibile, scrivere sia la versione CON che quella SENZA "range" e, se possibile, scrivere sia la versione con FOR sia la versione con WHILE.
- Scrivere una funzione che riceve tre numeri interi g, m, a (si ipotizza che a sia sempre un numero dispari per evitare anni bisestili) e restituisce True o False a seconda se i tre numeri formano una data valida nel formato "g/m/a". Es: 30/2/2017 False, 1/1/1111 True.
- Scrivere una funzione che prende una lista di interi e restituisce la somma di tutti i numeri pari meno la somma di tutti i numeri dispari che la compongono.
- Scrivere una funzione che prende in input una stringa di parole separate da spazi e restituisce una lista con le lunghezze delle parole della stringa.
- Scrivere una funzione che verifica se una lista è ordinata in modo crescente (<=) (supponiamo che la lista contenga oggetti ordinabili).
- Scrivere una funzione che prende in input una lista di interi e ritorna la lista con i complementi a 10 degli interi della lista in input. (Complemento a 10 di un numero: link
)
Mer 2 ottobre 2019: correzione e discussione esercizi
Streaming youtube canale Sterbini:
https://youtu.be/oE4kSbw7gg8
Streaming youtube canale Monti:
https://youtu.be/H7crEGFPTRI
Pacchetto zip con tutti gli esempi visti in classe:
es2.zip
Esercizi per allenarsi:
- Scrivere una funzione che dati in ingresso il prezzo di un prodotto e il valore percentuale dello sconto, la funzione calcola e stampa a video il prezzo finale
- Scrivere una funzione che dati in ingresso il costo del biglietto per visitare un museo e il numero di studenti di una classe in gita scolastica, ritorna la spesa totale, considerando che se gli studenti sono compresi fra 10 e 30 il biglietto per studente costa il 20% in meno, se sono 31 o più il 30% in meno.
- Scrivere una funzione che dati in ingresso il numero dei maschi e delle femmine che entrano in discoteca, la funzione calcola e stampa a video il prezzo totale sapendo che i primi pagano 12€ e le seconde 10€
- Scrivere una funzione che prende in input due interi e una stringa. In base al contenuto della stringa, che conterrà una operazione, la funzione eseguirà le 4 operazioni di base con i due interi: addizione, sottrazione, moltiplicazione, divisione.
- Scrivere una funzione 'invest' nel file 'invest.py', che prende in input un capitale, un interesse annuale e un numero di anni e ritorna come intero il capitale maturato dopo un investimento di n anni all'interesse i. Usare la formula maturato = capitale * (1+interesse/100)**anni.
Usare il seguente programma per testare la corretta implementazione: test_invest.py.txt
Mer 25 settembre 2019: primi passi!
Potete seguire la guida con i primi passi a questo link.
Streaming youtube canale Sterbini:
https://youtu.be/dFrdQ3_nS18
Streaming youtube canale Monti:
https://youtu.be/atsEZmUvVIA
Primi esercizi svolti:
Esercizi per allenarsi:
- Scrivere uno script python che prende in input un numero float, ne calcola la radice cubica e la stampa a video
- Scrivere uno script python che prende in input un nome di persona (nome) e il nome di un frutto (frutto) e stampa: "(nome) adora mangiare (frutto)"
- Scrivere uno script python che prende in input due float a e b e calcola e stampa c, corrispondente all'ipotenusa del triangolo rettangolo avente per cateti due lati di lunghezza a e b, rispettivamente
- Scrivere uno script python che prende in input tre float a, b, c, e calcola e stampa l'espressione:
- Scrivere uno script python che prende in input tre float a, b, c, e calcola e stampa le due radici x dell'equazione: