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]) restituisce 2
  • 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]) restituisce 1
  • 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.

Last modified: Monday, 2 December 2024, 4:26 PM