Questa volta viene richiesto di scrivere funzioni per risolvere vari problemi, e viene fornito anche uno strumento che mette alla prova il comportamento delle funzioni che avete scritto.
Create una cartella, nella quale saranno creati sia i file contenenti le funzioni che avete scritto (una per ciascun file), sia i file di test (forniti dal docente).
I nomi di questi file devono essere esattamente i seguenti:
labEserc6_1.py
, labEserc6_2.py
, labEserc6_3.py
, labEserc6_4.py
, labEserc6_5.py
, per i cinque files contenenti le funzioni scritte da voi,test_labEserc6_1.py
, test_labEserc6_2.py
, test_labEserc6_3.py
, test_labEserc6_4.py
, test_labEserc6_5.py
per i file di test (forniti dal docente)Per ciascuno dei 5 problemi elencati nel seguito dovrete scrivere un file contenente la soluzione richiesta, in cui il nome della funzione deve essere esattamente quello indicato nel testo seguente.
Una volta salvato il file nella cartella, e salvato anche il corrispondente file di test fornito dal docente, dovete eseguire il comando
python3 test_labEserc6_X.pydove
X
è il numero da 1 a 5 corrispondente all'esercizio che volete verificare.
Il risultato del test è una schermata (o più schermate) nella quale si mostra:
Per ogni funzione scritta vengono eseguite chiamate con diversi valori dei parametri. L'esito dei test viene riportato con il carattere
somma_liste
Scrivere una funzione somma_liste(a, b)
che:
a
, b
della stessa lunghezza, in cui ciascun elemento è un numero int
;TypeError
se i parametri ricevuti non sono liste, o se gli elementi delle liste non sono tutti numeri interi;
ValueError
se le liste non hanno la stessa lunghezza;a
e dell'elemento i-esimo di b
Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc6_1.py
La soluzione deve essere prodotta in un file di nome labEserc6_1.py
prodotto_scalare
Scrivere una funzione prodotto_scalare(a, b)
che:
a
, b
della stessa lunghezza, in cui ciascun elemento è un numero (int
oppure float
);TypeError
se i parametri ricevuti non sono liste, o gli elementi delle liste non sono tutti numeri;ValueError
se le liste non hanno la stessa lunghezza oppure sono liste vuote;Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc6_2.py
La soluzione deve essere prodotta in un file di nome labEserc6_2.py
separa_elementi
Scrivere una funzione separa_elementi(valori)
che:
valori
, in cui ciascun elemento è un numero (int
oppure float
);TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono tutti numeri;return lista1, lista2
). La prima lista deve contenere tutti gli elementi di valori
che sono maggiori della media degli elementi di valori
, mentre la seconda lista deve contenere tutti gli elementi di valori
che sono minori o uguali alla media degli elementi di valori
.Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc6_3.py
La soluzione deve essere prodotta in un file di nome labEserc6_3.py
intersezione
Scrivere una funzione intersezione(a, b)
che:
a
, b
;TypeError
se i parametri ricevuti non sono liste;
a
che alla lista b
. Si può assumere che a
non contenga elementi duplicati e che b
non contenga elementi duplicati.Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc6_4.py
La soluzione deve essere prodotta in un file di nome labEserc6_4.py
unione
Scrivere una funzione unione(a, b)
che:
a
, b
;TypeError
se i parametri ricevuti non sono liste;
a
e/o alla lista b
. Si può assumere che a
non contenga elementi duplicati e che b
non contenga elementi duplicati.Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc6_5.py
La soluzione deve essere prodotta in un file di nome labEserc6_5.py