For e liste in Python

For e liste in Python

In questa lezione useremo il for con le liste in Python, cioè un modo per scorrere gli elementi delle liste.

Abbiamo già affrontato il for in questa lezione senza l’uso delle liste: ciclo for in Python.

For e liste in Python – Primo metodo

Il primo metodo consiste nell’utilizzo della seguente sintassi:

for variabile in lista:

istruzioni


Stampare elementi della lista

Facciamo dunque un esempio.

Supponiamo di avere una lista di nome voto e di voler stampare gli elementi in essa contenuti.

voto=[6,9,4,5]

for i in voto:

print(‘Voto: ‘, i)

In questo caso i rappresenta il voto che di volta in volta, ad ogni iterazione, avanza verso destra, finché nella lista sono presenti degli elementi. Cioè, nella prima iterazione i vale 6 poi 9 e così via.


Somma degli elementi di una lista

Ipotizziamo adesso di voler sommare dei voti contenuti all’interno di una lista di nome voto.

Dunque inizializziamo a zero la variabile somma e a mano a mano andremo ad aggiungere tutti i numeri della lista voto.

Ecco di seguito il codice completo:

voto=[6,9,4,5]

somma=0

for i in voto:

print(‘Voto:’, i)

somma+=i

print(‘La somma è: ‘, somma)


Media degli elementi di una lista

Supponiamo adesso di voler calcolare la media degli elementi di una lista.

Per il calcolo della media ci occorre conoscere quanti elementi ci sono nella lista, ovvero la sua lunghezza. Dunque utilizziamo il metodo len.

Memorizziamo quindi la lunghezza della lista in una variabile di nome n e dopo calcoliamo la media dividendo la somma per n: somma/n.

Ecco di seguito il codice:

voto=[6,9,4,5]

n=len(voto) #lunghezza della lista voto

somma=0

for i in voto:

print(‘Voto: ‘, i)

somma+=i

print(‘La somma è: ‘, somma)

media=somma/n

print(‘La media è: ‘, media)


For e liste in Python – Secondo metodo

Esiste ancora un altro metodo per scorrere gli elementi di una lista e si ottiene seguendo questa sintassi:

for i in range(len(nome-lista)):

istruzioni


Somma degli elementi di una lista con il secondo metodo

Facciamo dunque un esempio pratico, realizzando un algoritmo che determini la somma dei soli valori maggiori o uguali a 6.

voto=[6,9,4,5]
somma=0

for i in range(len(voto)):
    if voto[i]>=6:
        somma+=voto[i]

print('Somma: ', somma)

In questo caso i rappresenta l’indice, l’elemento si rappresenta invece con voto[i].

Quindi voto[i] nella prima iterazione sta per voto[0] mentre nella seconda iterazione sta per voto[1] e così via.

Mostriamo anche la soluzione utilizzando il primo metodo:

voto=[6,9,4,5]
somma=0

for i in voto:
    if i>=6:
        somma+=i

print('Somma: ', somma)


While con le liste

Possiamo utilizzare anche il while, ma in questo tipo di ciclo non è indicato, dunque pubblico l’esempio solo per vedere la relazione con il for.

voto=[6,9,4,5]

i,somma=0,0

while i<len(voto):

if voto[i]>=6:

somma+=voto[i]

i+=1

print(‘Somma: ‘, somma)

Questi sono solo alcuni semplici esempi d’uso del for con le liste in Python, nelle prossime lezioni approfondiremo l’argomento.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili in python

3 – Operatori aritmetici e di assegnazione in python

4 – Stringhe in python

5 – Casting in python

6 – Input e print in python

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili in python

Cicli indefiniti in Python

Cicli indefiniti in Python

In questa lezione studieremo i cicli indefiniti in Python, cioè i cicli dove il numero di iterazioni non è noto all’inizio del ciclo.

Facciamo degli esempi per comprendere meglio cosa si intende per ciclo indefinito.

Cicli indefiniti in Python – primo esempio

Inserire dei numeri interi e sommarli, uscire dal programma quando si inserisce il valore zero.

Innanzitutto chiediamo di inserire un numero intero n in input. Dopo impostiamo la variabile somma uguale ad n e realizziamo un ciclo per inserire gli altri numeri e sommarli.

Impostiamo nel while la condizione n != 0 in modo da arrestare il ciclo solo se si inserisce il valore zero. Infine visualizziamo la somma ottenuta.

Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!

corsi Python

Ecco dunque il codice completo:

print('Inserisci dei numeri, inserisci 0 per terminare!')

n = int(input('Inserisci un numero: '))

somma = n

while n != 0:
    n = int(input('Inserisci un numero: '))
    somma += n

print('La somma è:', somma)

In questo esempio, il ciclo terminerà solo quando l’utente deciderà di interromperlo inserendo il numero 0. È importante notare che potremmo richiedere l’inserimento di qualsiasi altro valore, poiché il ciclo si interromperà solo quando viene inserito lo zero.

Cicli indefiniti in Python – Secondo esempio

Consideriamo un altro esempio:

Sommare dei numeri interi, fermarsi quando la somma raggiunge o supera 100.

Questa volta non è necessario inserire un numero in input. Impostiamo dunque la somma a zero.

Dopo inseriamo nel ciclo while la condizione somma < 100 e chiediamo quindi di inserire un numero n che verrà sommato alla variabile somma ad ogni iterazione.

Ecco dunque il codice completo:

somma = 0

while somma < 100:
    n = int(input('Inserisci un numero: '))
    somma += n

print('La somma è:', somma)

In questo caso, il ciclo continuerà fino a quando la somma dei numeri inseriti raggiungerà o supererà il valore di 100. Quando ciò accade, il programma uscirà dal ciclo e stamperà la somma totale.

Conclusioni

In questa lezione abbiamo esplorato i cicli indefiniti in Python, un concetto fondamentale nella programmazione che ci consente di eseguire un blocco di istruzioni fino a quando una certa condizione viene soddisfatta. Abbiamo visto due esempi pratici di cicli indefiniti e come gestire diversi scenari utilizzando queste strutture.

È importante comprendere quando è opportuno utilizzare i cicli indefiniti e come strutturarli correttamente per evitare loop infiniti o comportamenti indesiderati. Nei nostri esempi, abbiamo utilizzato condizioni specifiche per determinare quando interrompere il ciclo, garantendo così un’uscita controllata.

L’applicazione di cicli indefiniti è fondamentale in molte situazioni di programmazione, come la gestione di input utente, il calcolo di somme o il monitoraggio di eventi in tempo reale. Con una comprensione solida di come implementare e utilizzare i cicli indefiniti, siamo in grado di scrivere codice più efficiente e robusto.

Continua a esplorare il mondo della programmazione e approfondisci le tue conoscenze con risorse come il libro “50 Algoritmi per Imparare Python”. L’apprendimento continuo è la chiave per diventare un programmatore più competente e creativo!

Alcuni link utili

Corso in diretta su Python

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

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

Python for

Python for

Il ciclo for in Python serve a compiere delle iterazioni un numero prefissato di volte.

In questa lezione spiegheremo il funzionamento del ciclo ed introdurremo la funzione range().

Nella scorsa lezione abbiamo studiato il ciclo while, che consente di ripetere una o più istruzioni in base al valore di verità della condizione specificata. A differenza del while, il ciclo for itera in base ad un numero di volte prefissato, ovvero un numero definito di volte.

Sintassi del ciclo for in Python e la variabile range

La sintassi del ciclo for è, dunque, la seguente:

for variabile in range():
    istruzioni

Dove:

– for e in sono le parole chiavi.

– variabile è il nome della variabile che sceglierete a piacere seguendo le regole spiegate nelle precedenti lezioni.

– range() è una funzione che può avere come argomenti:

– un numero intero che indica quante volte la ripetizione è eseguita. Ad esempio se mettiamo 3 la ripetizione viene ripetuta tre volte da 0 a 2.

due numeri che indicano il valore di inizio e di fine (escluso) che assume il contatore.

tre numeri dove i primi due indicano il valore di inizio e di fine del contatore mentre il terzo indica l’incremento che il contatore assume ad ogni ripetizione.

Facciamo subito degli esempi pratici al fine di comprendere meglio il funzionamento di questo ciclo.


Primo esempio di ciclo for in Python

Facciamo un primo esempio sul ciclo for in Python:

for i in range(3):
    print(i)

Questo script produce come output i valori 0, 1 e 2.

Dunque, inizialmente i vale zero e dopo, a fine ciclo, arriverà al valore 2.


Secondo esempio di ciclo for in Python

Facciamo un secondo esempio sul ciclo for in Python:

for i in range(1, 3):
    print(i)

In questo caso specifico l’indice parte da 1 e termina a 2. Dunque questo script produce come output i valori 1 e 2.

Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!

corsi Python


Terzo esempio di ciclo for in Python

for i in range(1, 9, 2): #2 è lo step - indica il passo di avanzamento
   print(i)

In questo caso l’indice parte da 1 e cambia a passi di 2 fino ad arrivare a 9 escluso. Quindi, si avrà come output: 1, 3, 5, 7.

Chiaramente si può anche visualizzare in ordine decrescente, come ad esempio:

for i in range(9, 1, -2):
    print(i)

Visualizzerà i numeri: 9, 7, 5, 3.


Quarto esempio di ciclo for in Python

La funzione range() può essere personalizzata come si preferisce e si possono ottenere ad esempio i numeri in senso decrescente.

for i in range(10, 0, -1): 
    print(i)

L’output prodotto è il seguente: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1


Parola chiave end

Nella funzione print si può aggiungere anche la parola chiave end per impedire il ritorno a capo nell’output.

for i in range(10, 0, -1):
    print(i, end=' ')

In questo caso si ha uno spazio vuoto tra un numero ed un altro.

Si può inserire anche un carattere separatore come ad esempio la virgola o il trattino: print(i, end=’ – ‘) .

Conclusioni

In questa lezione abbiamo esaminato il funzionamento del ciclo for in Python e introdotto la funzione range(), che è comunemente utilizzata per generare sequenze di numeri da iterare nel ciclo for.

Abbiamo imparato che il ciclo for in Python è utilizzato per compiere iterazioni su un numero prefissato di volte, il che lo rende particolarmente adatto quando si conosce il numero esatto di ripetizioni desiderate.

La sintassi del ciclo for è semplice e intuitiva, con la parola chiave for, il nome della variabile di iterazione e la funzione range() che specifica il numero di iterazioni desiderate.

Abbiamo visto diversi esempi pratici del ciclo for in azione, utilizzando la funzione range() per generare sequenze di numeri da iterare. Questi esempi ci hanno mostrato come personalizzare la sequenza di numeri e come manipolare l’iterazione in base alle nostre esigenze.

Infine, abbiamo esplorato alcune funzionalità aggiuntive della funzione print(), come l’utilizzo della parola chiave end per personalizzare il formato dell’output.

Spero che questa lezione ti abbia fornito una comprensione chiara e approfondita del ciclo for in Python e della funzione range(), preparandoti per affrontare una vasta gamma di compiti di programmazione con fiducia e competenza.

Continua a esplorare il vasto mondo della programmazione Python e non dimenticare di mettere in pratica ciò che hai imparato con progetti pratici e esercizi! E se sei interessato, puoi proseguire il tuo apprendimento con il coinvolgente libro ’50 Algoritmi per imparare Python’. Troverai numerosi concetti interessanti!

Alcuni link utili

Corso in diretta su Python

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

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

Ciclo for Python

Ciclo for Python

Il ciclo for in Python consente di eseguire delle operazioni cicliche un certo numero di volte. In questa lezione realizziamo degli esercizi con il ciclo for, al fine di consolidare quanto studiato finora.

Riprendiamo a questo scopo un esercizio in cui abbiamo utilizzato il while, in modo da poter comparare i due metodi. L’esercizio è visionabile a questo link: esempio ciclo while in Python.

Esercizio 1 con il ciclo for in Python

Dati in input 10 numeri interi, contare quanti numeri pari e quanti dispari sono stati inseriti.

Innanzitutto inizializzo le variabili contap e contad a zero.

Poi utilizziamo semplicemente un ciclo for con il range (10).

Come potete notare non occorre inizializzare i a 0 come facevamo nel while, in quanto l’indice i parte comunque da zero, se non specificato diversamente nella funzione range().

Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!

corsi Python

All’interno del ciclo inserisco i valori e per ogni valore inserito controllo se pari o dispari. Utilizzo le due variabili precedentemente inizializzate a zero per fare questo conteggio.

Infine, con il ciclo for, visualizzo i valori delle due variabili.

Ecco dunque il codice completo del nostro semplice programma, che utilizza il ciclo for in Python:

contap = contad = 0

for i in range(10):
    n = int(input('Inserisci un numero: '))
    if n % 2 == 0:
        contap += 1
    else:
        contad += 1

print('I numeri pari inseriti sono:', contap)
print('I numeri dispari inseriti sono:', contad)

In genere quando si conosce il numero di cicli da fare si preferisce utilizzare il ciclo for.


Esercizio 2

Anche questa volta riprendiamo un esercizio fatto con il while e lo svolgeremo con il ciclo for in Python, al fine di poter paragonare ancora questi due costrutti.

Prendere in input 15 numeri interi e calcolare la media.

Innanzitutto inizializzo n a 15.

Semplicemente perché in questo modo, se devo ad esempio inserire un numero diverso da 15, basta cambiare la costante e non occorre cambiare nessun altro dato nel codice.

Poi con un ciclo for chiedo i numeri e li memorizzo in una variabile media che inizializzo a 0.

Posso dunque risolvere l’algoritmo in questo modo utilizzando il ciclo for in Python:

media = 0
n = 15

for i in range(n):
    a = int(input('Inserisci un numero: '))
    media += a

media /= n
print('La media è:', media)

N.B. Utilizzo la variabile media per la somma e anche per la media, ma potrei anche utilizzare due variabili distinte qualora ci fosse la necessità di visualizzare anche la somma.

Conclusioni

In questa lezione abbiamo fatto due esempi sul ciclo for in Python. Ecco alcune osservazioni:

  1. Chiarezza e semplicità del codice: Entrambi gli esempi mostrano come il ciclo for possa rendere il codice più chiaro e semplice da comprendere rispetto al ciclo while, specialmente quando si tratta di iterazioni definite come nel primo esercizio.
  2. Flessibilità e adattabilità: Nel secondo esercizio, si evidenzia la flessibilità del ciclo for nell’adattarsi a un numero variabile di iterazioni, rendendolo ideale per casi in cui il numero di iterazioni non è fisso.
  3. Utilizzo efficiente delle variabili: Abbiamo mostrato come utilizzare un numero minimo di variabili per gestire i calcoli necessari, come nel caso dell’utilizzo della variabile media sia per la somma dei numeri che per calcolare la media.

In conclusione, l’utilizzo del ciclo for in Python offre una sintassi chiara e concisa per eseguire operazioni cicliche quando il numero di iterazioni è noto a priori, contribuendo così a una maggiore leggibilità e manutenibilità del codice.

Nella prossima lezione proporrò ancora degli esercizi sul ciclo for in Python e palerò delle istruzioni break e continue.

Alcuni link utili

Corso in diretta su Python

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

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

12 – Operatori di confronto e booleani

13 – If else

14 – If elif else

15 – If annidati