In questa lezione realizziamo altri esercizi che utilizzano il metodo append in Python.
In particolare impareremo a popolare le liste con dei numeri primi.
Esercizio con il metodo append in Python
Il primo esercizio che propongo è dunque questo:
Creare una lista di n numeri primi. Dopo visualizzare in output gli elementi ed il suo indice.
Innanzitutto occorre chiedere la quantità di numeri primi da inserire nella lista, cioè n.
Dopo inizializziamo la lista primi all’insieme vuoto ed N, cioè il numero da cui partire per verificare se è primo, a 2. Difatti sappiamo che 1 non è primo, dunque lo tralasciamo.
Abbiamo già discusso come trovare i numeri primi nel seguente articolo: numeri primi in Python.
In definitiva basta prendere ciascun numero (come detto prima si parte da 2) e verificare che non ci siano divisori.
Se non ci sono divisori allora si memorizza il numero nella lista.
Quindi continuiamo ad inserire i numeri nella lista finché la lunghezza della lista non raggiunge il numero immesso in input, cioè n.
In poche parole compio i seguenti passi:
parto da 2 e controllo se è primo, lo è quindi lo aggiungo alla lista;
dopo incremento 2 di 1 e quindi considero 3, è primo e dunque lo aggiungo alla lista;
poi considero 4, non è primo e quindi non lo aggiungo alla lista.
E così via.
Mi fermo quando raggiungo esattamente la quantità di numeri primi da aggiungere alla lista.
Ecco dunque l’esercizio sui numeri primi sviluppato con il metodo append in Python:
n = int(input('Inserisci la quantità n: '))
primi = []
N = 2 #parto da due perché 1 non è un numero primo
while len(primi) < n: #finché la lunghezza della lista primi è minore di n
div,count = 2,0 #div divide il numero, mentre count conta i divisori
while div <= N/2 and count == 0:
if N%div == 0:
count += 1
div += 1
if count == 0:
primi.append(N) #se il numero non ha divisori allora lo aggiungiamo
N += 1 #procediamo con un altro numero
#visualizziamo gli elementi ed il loro indice
for i in range(n):
print('elemento di indice', i, ' vale ', primi[i])
Secondo esempio
Inserire i primi n numeri primi in una lista con un ciclo for. Dopo con un ciclo for modificare gli elementi di posto pari moltiplicandoli per 3. Infine utilizzare un altro ciclo per visualizzare gli elementi della lista e il loro indice.
Per sviluppare questo algoritmo, occorre semplicemente aggiungere all'esercizio precedente un altro ciclo. Questo ciclo prende gli elementi di posto pari e li moltiplica per 3. Infine si visualizza la lista modificata.
Ecco dunque il codice completo:
n = int(input('Inserisci la quantità n: '))
primi = []
N = 2
while len(primi) < n:
div,count = 2,0
while div <= N/2 and count == 0:
if N%div == 0:
count += 1
div += 1
if count == 0:
primi.append(N)
N += 1
for i in range(n):
if i%2 == 0:
primi[i] *= 3
for i in range(n):
print('elemento di indice', i, ' vale ', primi[i])
Prova nell'editor:
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
3 – Operatori aritmetici e di assegnazione in python
8 – Errori in python
9 – Script python
10 – Scambio di variabili in python