Esercizi: liste e collaudo di funzioni
In questi esercizi faremo esperimenti sulle liste e, nel contempo, sul collaudo delle funzioni. Per poter svolgere questi esercizi, dovete scrivere programmi e test come file Python, non potete utilizzare i notebook.
Esercizio 1
Scrivere la funzione cerca_positivo(l) che restituisce il primo elemento positivo della lista l, -1 se tale elemento non esiste. Scrivere un test che controlli la correttezza della funzione che avete scritto, provando quantomeno che
cerca_positivo([-4, 2, 0])
restituisce2
cerca_positivo([-4, -2])
restituisce-1
Esercizio 2
Scrivere la funzione cerca_positivo_pos(l) che restituisce la posizione del primo elemento positivo presente nella lista l, -1 se tale elemento non esiste. Scrivere un test che controlli la correttezza della funzione che avete scritto, provando quantomeno che
cerca_positivo_pos([-4, 2, 0])
restituisce1
cerca_positivo_pos([-4, -2])
restituisce-1
Esercizio 3
Scrivere la funzione count che prende come argomenti una lista l ed un oggetto x, e restituisce il numero di volte che x compare in l. Ad esempio, count([ 1, 2, 3, 1, 4],
1)
restituisce 2
perché il valore 1 compare due volte nella lista.
Scrivere un test per verificarne il corretto funzionamento (inventatevi voi due o tre casi da controllare).
Esercizio 4
Scrivere una funzione replace_none(l, v)
che rimpiazza sul posto, nella lista l, tutti i valori None
con il valore v. Ad esempio, se l è la lista [1, None, 2, None, 5]
, dopo la chiamata di replace_none(l, 99)
la lista l varrà [1, 99, 2, 99, 5]
.
Scrivere un test per verificare il corretto funzionamento della funzione (inventatevi voi due o tre casi da controllare).
Esercizio 5
Scrivere una funzione somma_liste
che riceve in input (come parametri) due liste di interi (si può assumere che siano della stessa lunghezza) e restituisce una nuova lista nella quale ogni elemento è ottenuto dalla somma dei corrispondenti elementi di input. Ad esempio, se in input riceve le liste [1, 2, 3]
e [4, 5, 6]
, restituisce [5, 7,
9]
. Scrivere un test per verificarne il corretto funzionamento.
Scrivere un test per verificare il corretto funzionamento della funzione.
Esercizio 6
Scrivere la versione sul posto della funzione dell'esercizio 5. La nuova funzione non deve restituire una nuova lista con le somme, ma sommare i valori della seconda lista alla prima, in modo che la prima lista contenga i valori desiderati. Ad esempio, se l è la lista [ 1, 2, 3 ]
, dopo aver chiamato somma_liste_inplace(l, [10, 20, 30])
la variabile l conterrà la lista [11, 22, 33]
.
Scrivere un test per verificare il corretto funzionamento della funzione.
Esercizio 7
Scrivere una funzione input_list_int() che restituisce una lista di numeri interi letti da tastiera. La funzione chiede ripetutamente all'utente di inserire un numero intero e si ferma quando l'utente preme Invio senza inserire alcun dato. A quel punto restituisce una lista con tutti i numeri inseriti.
Collaudare questa funzione è complicato perché, a differenza delle altre qui sopra, prende l'input da tastiera e non dagli argomenti, quindi soprassediamo.
Esercizio 8
Scrivere una funzione random_list(n, k) che restituisce una lista di n numeri interi, ognuno dei quali è un numero casuale tra 1 e k. Scrivere un test per verificarne il corretto funzionamento.
P.S. In questo caso, essendo i numeri casuali, non sappiamo a priori quali saranno i risultati, ma possiamo sicuramente controlalre che la lunghezza della lista risultato e i numeri all'interno siano corretti.