Abbiamo un’elenco di numeri e desideriamo contare quante volte compare un certo valore, oppure quanti numeri pari si trovano nell’elenco. In questo caso è necessario elaborare sempre tutta la lista: non abbiamo scorciatoie.
A differenza dell’esempio precedente, dovendo conteggiare le occorrenze dei numeri pari, sarà necessario predisporre una variabile da aggiornare mentre scorriamo la lista.
Per verificare se un numero è pari o dispari utilizzeremo l’operatore modulo (%) che esegue la divisione di un numero per il divisore indicato e restituisce il resto della divisione. Dividendo un numero per 2 possiamo avere solo due possibili valori per il resto: 0 o 1. Nel primo caso il numero sarà pari, infatti se il numero è divisibile per 2, non ci sarà resto. In ogni altro caso avremo un numero dispari con resto pari a 1. Per verificare il funzionamento dell’operatore modulo possiamo scrivere un piccolo programma:
n = 12 resto = n%2 if (resto == 0): print(‘pari’) else: print(‘dispari’)
Listato 1.26 – Conta quanti numeri pari sono presenti nella lista.
Il numero da verificare è memorizzato nella variabile n. Calcoliamo il resto della divisione per 2 e salviamo il risultato nella variabile resto; dopo aver verificato il suo valore, stampiamo un messaggio.
Possiamo ora affrontare il programma per il conteggio dei numeri pari. I numeri sono raccolti nella lista numeri. La variabile conteggio conterà le occorrenze dei numeri pari rilevati. Ecco il codice completo:
numeri = [12,23,43,5,6,7,34,5,46,76,9] #numero da cercare conteggio = 0 for el in numeri: print(el, end=' ') if ((el % 2) == 0): conteggio += 1 print("\nnumeri pari: ", conteggio)
Listato 1.27 – Conta quanti numeri pari sono presenti nella lista.
Eseguendolo otterremo:
12 23 43 5 6 7 34 5 46 76 9 numeri pari: 5
Cose da provare
- Chiedete dei numeri all’utilizzatore del vostro programma, inseriteli in una lista e poi indicate quanti sono i numeri pari e dispari presenti nell’elenco.
- Chiedete un elenco di numeri e poi calcolatene la somma
- Realizzate un programma che analizza una lista di numeri e stampa tutti quelli superiori a un certo valore.