LABORATORIO DI PYTHON

Seconda lezione

Argomenti trattati:

 

  • Costrutti di deviazione del flusso d’esecuzione:
    -Ripasso ed esercizi su: if-else
    -Costrutti ciclici: while e for
    -La sequenza numerica: range()
    -Istruzioni: break, continue.

Materiale didattico:

 

Esercitazioni in classe:

    • Data la lista: l = [[1], [1], [1], [1]], scorrerla utilizzando il ciclo for e rimpiazzandone gli elementi con il valore: 0, al fine di ottenere la lista: [0, 0, 0, 0].

Soluzione:
>>> for i in range(4):
...   l[i]=0

    • Ripetere l’esercizio utilizzando il ciclo while.

Soluzione:
>>> i=0
>>> while i<4:
...   l[i]=0
...   i+=1

    • Stampare una sequenza di numeri pari da 0 a 3, utilizzando il while.

Soluzione:
>>> n=0
>>> while n<4:
...   if not n%2: print(n)
...   n+=1

    • Data una lista l = [‘ciao’, 1, (2+7j)], scorrerla utilizzando il while e stampandone i soli elementi di tipo int (intero) e str (string).
      La funzione type(o) ritorna il tipo di un oggetto o.
    • Terminato l’esercizio, ripeterlo cambiando l.
      Esempi:
      l = [[], True, “”]
      l = [0, 1, [1,2]]
      l = []
      La funzione: len(l) ritorna la lunghezza di l

Soluzione:
>>> i=0
>>> while i<len(l):
...  if type(l[i]) == str or type(l[i]) == int: print(l[i])
...  i+=1

    • Data una lista l eterogenea, iterare su di essa rimpiazzando eventuali elementi nulli con UNA COPIA della lista stessa.
      Esempio:
      Lista iniziale: l = [‘ciao’, ‘mamma’, , ‘stai?’]
      Lista modificata: [‘ciao’, ‘mamma’, [‘ciao’, ‘mamma’, ”, ‘stai?’], ‘stai?’]

Soluzione:
>>> for i in range(len(l)):
...  if not l[i]: l[i]=l[:]

Consigli:

 

  • Nella scelta del costrutti da utilizzare per ripetere un blocco di istruzioni n volte, tenere bene a mente la semantica dei costrutti: for e while; se l’obbiettivo è quello di scorrere un oggetto sequenza, ed operare con le sue componenti, prediligere l’utilizzo del for(a meno che non si debbano effettuare operazioni come: l’alterazione della sequenza o la variazione del numero di cicli da effettuare, durante l’esecuzione degli stessi), altrimenti, se si deve ripetere un blocco di istruzioni, per un numero indeterminato di volte, la scelta più corretta è quella di utilizzare il while.
  • Il range, comunemente utilizzato per l’accesso alle posizioni di un oggetto sequenza, può essere utilizzato anche in contesti differenti dal for.

Esercizi per casa:

 

  • Data una lista L di stringhe, creare una matrice M SIMMETRICA, contenente R righe quante sono le stringhe in L, e C colonne quanti sono i caratteri della stringa più lunga presente in L.
    La matrice dovrà memorizzare, per i caratteri di ogni stringa, il conteggio delle loro occorrenze all’interno di essa, inserendo degli zeri per rendere la matrice simmetrica, nel caso in cui la stringa in esame dovesse avere meno caratteri rispetto a quella più lunga.
    Esempio:
    Lista: L = [“ieri”,”sono”,”stato”,”al”,”bagno”]
    Risultato: M = [[2,1,1,2,0], [1,2,1,2,0], [1,2,1,2,1], [1,1,0,0,0], [1,1,1,1,1]]
    Come visibile in questo esempio, gli zeri aggiuntivi(in rosso) servono a rendere la matrice simmetrica, completando le colonne mancati nelle righe corrispondenti alle stringhe che hanno un numero inferiore di caratteri.
    Nella prima riga: [2,1,1,2,0] il 2 in posizione 0 e 3 corrisponde alle due occorrenze del carattere ‘i‘, nella parola: ‘ieri’, gli 1 corrispondono alle singole occorrenze dei caratteri ‘e‘ ed ‘i‘ nella medesima stringa, e così via per tutte le altre stringhe della lista.
  • Data una lista L di stringhe, produrre una nuova lista Z contenente tutte le stringhe di L, invertite.
    Esempio:
    Lista: L = [“Sono”,”Anna”]
    Risultato: Z = [“onoS”,”annA”]
  • Data una lista L eterogenea, iterare su di essa rimpiazzando eventuali elementi nulli con UNA COPIA della lista stessa.
    In caso di liste annidate contenenti anch’esse valori nulli, rimpiazzarli con la copia della rispettiva LISTA DI APPARTENENZA.
    Esempio:
    Lista iniziale: L = [‘ciao’, [‘cara’, ‘ ‘, [‘doce’, ”]], ‘mamma’, ‘ ‘, ‘stai?’]
    Lista modificata: [‘ciao’, [‘cara’, [‘cara’, ‘ ‘, [‘doce’, ‘ ‘]], [‘doce’, [‘doce’, ‘ ‘]]], ‘mamma’, [‘ciao’, [‘cara’, [‘cara’, ‘ ‘, [‘doce’, ‘ ‘]], [‘doce’, [‘doce’, ‘ ‘]]], ‘mamma’, ‘ ‘, ‘stai?’], ‘stai?’]

 

Soluzioni esercizi

 

<<<  Vai alla 1° lezione     Vai alla 3° lezione  >>