In questa lezione svilupperemo dei semplici esercizi con le liste in Python.
Esercizi con le liste in Python – primo esercizio
Popolare una lista di n elementi con i primi n numeri pari. Dopo averli inseriti visualizzare in output i valori memorizzati nella lista e la loro posizione.
Propongo una prima soluzione che utilizza un ciclo for con indice i da 0 ad n*2-1 a step di due.
Per inserire gli elementi nella nostra lista utilizziamo il metodo append.
Stampiamo poi gli elementi con un altro ciclo for.
Ecco quindi il codice di esempio:
n = int(input('Inserisci il numero di elementi:'))
pari = []
for i in range(0,n*2,2):
pari.append(i)
print(pari)
'''
print(pari) stampa la lista con le parentesi e le virgole
quindi in questo caso non va bene,
non è quello che chiede l'esercizio
'''
Per stampare gli elementi della lista possiamo utilizzare un ciclo for che scorre tutta la lista. Quindi aggiungo il seguente codice al listato precedente:
for i in range(n):
print('Elemento in posizione ', i, 'ha valore', pari[i])
Un secondo metodo per risolvere l’algoritmo potrebbe essere questo:
n = int(input('Quanti elementi?:'))
lista = []
c = 0
for i in range(n):
lista.append(c)
c += 2
for i in range(n):
print('Elemento in posizione:', i, 'vale', lista[i])
Cioè si prende una variabile c che parte da 0 e che di volta in volta si incrementa di 2.
Esercizi con le liste – secondo esercizio
Popolare una lista di n elementi con i primi n multipli di 5 escludendo lo zero. Dopo aver terminato l’inserimento visualizzare in output i valori della lista e il relativo indice.
Intuiamo subito che basta inserire, per ogni elemento della lista, il prodotto dell’indice i per 5.
Quindi quando i=1 inserirà 5, poi quando i diventa 2 inserirà 10, poi 15, ecc.
Ecco quindi il codice completo:
n = 10
l = []
for i in range(1,n+1):
l.append(i*5)
for i in range(n):
print('Elemento in posizione ', i, 'ha valore', l[i])
Continuiamo proponendo altri esercizi con le liste in Python.
Terzo esercizio
Inserisci n elementi nella lista da tastiera. Al termine dell’inserimento visualizzare gli elementi con il relativo indice.
Per ogni iterazione chiediamo di inserire un numero e dopo lo aggiungiamo alla lista inizialmente vuota.
Ecco dunque il codice completo:
n = int(input('Inserisci n: '))
interi = []
for i in range(n):
x = int(input('inserisci un numero: '))
interi.append(x)
#visualizzo gli elementi
for i in range(n):
print('Elemento in posizione ', i, 'ha valore ', interi[i])
Quarto esercizio
Creare una lista di n numeri decimali, sommarli e fare la media. Dopo l’inserimento sommarli e visualizzare in output la somma e la media.
Innanzitutto dichiariamo una lista vuota di elementi di nome numeri e per ogni i che varia da 0 ad n-1, chiediamo di inserire un numero decimale.
Calcoliamo la somma sommando ciascun elemento inserito e dopo il ciclo calcoliamo la media.
Infine visualizziamo la somma e la media.
Ecco quindi il codice completo:
n = int(input('Quanti elementi? '))
s = 0
numeri = []
for i in range(n):
f = float(input('inserisci un numero: '))
numeri.append(f)
for i in range(n):
s += numeri[i]
m = s/n
print(s)
print(m)
Abbiamo sviluppato alcuni semplici esercizi con le liste in Python utilizzando il metodo append.
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Stringhe
5 – Casting
6 – Input e print
8 – Errori in Python
9 – Script Python
10 – Scambio di variabili
Non ho ben capito che risultato produce questo operatore su queste variabili. s+=f
Non dovremmo fare la somma dei numeri digitati dall’utente (f) e successivamente dividerli per il numero nella variabile n?
Gentilissimo, fare l’operazione s += f è equivalente a fare s = s + f e dunque a sommare di volta in volta tutti i numeri inseriti dall’utente (f).
ho provato a fare la somma di numeri a caso, ad es.: 9, 7, 5, 12, 28, 16, 62, 54, 13 (quindi f) ed s mi risulta 117. Ma questo operatore non dovrebbe darmi la somma di tutti i numeri in input (9, 7, 5, 12, 28, 16, 62, 54, 13)?
Ho effettuato una modifica: s += numeri[i]
Ok. grazie. Ma, didatticamente, cosa accadeva nell’esercizio con quella svista? (s+=f)
In quel caso non poteva vedere tutti i numeri inseriti nel precedente ciclo for, ma sommava n volte il numero f inserito per ultimo