Svolgeremo altri esercizi sul ciclo for in Python al fine di consolidare quanto studiato finora.

Esercizi sul ciclo for in Python – primo esercizio

Progettate un algoritmo che scriva tutte le coppie di numeri naturali la cui somma è 20.

Dunque l’algoritmo dovrà stampare le coppie (20,0), (19,1), (18,2), (17,3), (16,4) ecc…

Per progettare questo algoritmo quindi basta far decrementare di uno il numero della prima coppia e incrementare di 1 il numero della seconda coppia.

Impostando n uguale a 20, utilizzo poi un ciclo for con l’indice i che parte da 0 fino ad n+1 e dunque si incrementa di 1. Dopo decrementiamo n di 1.

Ecco quindi una possibile soluzione:

n=20

for i in range(n+1):
    print(n,i)
    n-=1

Se non vogliamo ripetizioni basta mettere:

n=20

for i in range(n//2+1):
    print(n,i)
    n-=1

Possiamo anche generalizzare l’algoritmo chiedendo all’utente di inserire il valore di n.

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

for i in range(n//2+1):
    print(n,i)
    n-=1

Esercizi sul ciclo for in Python – secondo esercizio

Date N coppie di numeri reali contare quelle che generano un prodotto negativo, positivo o uguale a zero senza eseguire l’operazione. 

Il prodotto di due numeri è positivo quando i numeri sono entrambi positivi oppure entrambi negativi. Il prodotto tra due numeri è nullo quando uno solo dei due numeri è uguale a zero.

Negli altri casi è negativo.

Ecco dunque l’algoritmo completo:

N = int(input('Quante coppie? '))
p, n, z = 0, 0, 0

for i in range(N):
    a = int(input('Inserire il primo numero: '))
    b = int(input('Inserire il secondo numero: '))
    
    if a > 0 and b > 0 or a < 0 and b < 0:
        p += 1
    elif a == 0 or b == 0:
        z += 1
    else:
        n += 1

print('Prodotto positivo:', p, '. Negativo:', n, '. Nullo:', z)

Ecco una spiegazione del codice:

  1. Innanzitutto chiediamo all’utente di inserire il numero di coppie di numeri da analizzare.
  2. Dopo inizializzamo un contatore per i prodotti positivi (p), negativi (n) e nulli (z).
  3. Quindi utilizziamo un ciclo for per iterare attraverso il numero di coppie specificato.
  4. Per ogni iterazione del ciclo, all’utente viene chiesto di inserire due numeri, rappresentanti la coppia.
  5. Controlliamo se entrambi i numeri della coppia sono positivi, negativi o nulli e aggiorniamo i contatori di conseguenza.
  6. Alla fine del ciclo, stampiamo i conteggi dei prodotti positivi, negativi e nulli.

Migliora le tue capacità di programmazione Python seguendo il nostro corso in diretta!

Esercizi sul ciclo for in Python – terzo esercizio

Date n coppie di numeri reali contare quelle che generano una somma positiva, negativa o nulla senza eseguire l’operazione.

Realizziamo una prima soluzione facendo alcune considerazioni.

Quindi ad esempio osserviamo queste operazioni:

7+3 , 3+7, -5+6, 5-4 somma positiva

-7-3, -3-7, -5+4, 5-6 somma negativa

6-6 somma nulla

Da questi esempi deduciamo che la somma è positiva in questi casi:

i termini sono tutti e due positivi oppure

solo a è maggiore di zero e contemporaneamente è maggiore del valore assoluto di b oppure

solo b è maggiore di zero e contemporaneamente è maggiore del valore assoluto di a.

In definitiva allora vale la regola se a è maggiore del valore assoluto di b oppure b è maggiore del valore assoluto di a.

La somma invece è nulla quando a è l’opposto di b e questo include anche lo zero.

In tutti gli altri casi la somma è negativa.

Ecco dunque l’algoritmo completo:

N = int(input('Quante coppie? '))
p, n, z = 0, 0, 0

for i in range(N):
    a = int(input('Inserire il primo numero: '))
    b = int(input('Inserire il secondo numero: '))
   
    if a > abs(b) or b > abs(a):
        p += 1
    elif a == -b:
        z += 1
    else:
        n += 1

print('Somma positiva:', p, '. Negativa:', n, '. Nulla:', z)

In questo algoritmo, ad ogni iterazione del ciclo, all’utente viene chiesto di inserire due numeri, rappresentanti la coppia di numeri (a e b). Dopo effettuiamo il controllo delle seguenti condizioni:

  • Se il valore assoluto di a è maggiore di b o il valore assoluto di b è maggiore di a, allora la somma è considerata positiva. Il contatore p viene incrementato.
  • Se a è uguale al negativo di b, la somma è considerata nulla. Il contatore z viene incrementato.
  • In tutti gli altri casi, la somma è considerata negativa e il contatore n viene incrementato.

Alla fine del ciclo, vengono stampati i conteggi delle somme positive, negative e nulle.

Ottimizzazioni

    Per semplificare la risoluzione dell’algoritmo possiamo scambiare a e b se il valore della variabile a è inferiore a b.

    Dopo controlliamo se a è maggiore del valore assoluto di b e se è vero incrementiamo la variabile p. Altrimenti controlliamo se a è l’opposto di b e incrementiamo il valore di z. Se nessuna di queste condizioni è vera allora incrementiamo la variabile n.

    Ecco dunque una possibile soluzione all’algoritmo proposto:

    N = int(input('Quante coppie? '))
    p, n, z = 0, 0, 0
    
    for i in range(N):
        a = int(input('Inserire il primo numero: '))
        b = int(input('Inserire il secondo numero: '))
       
        if a < b:
            a, b = b, a
            
        if a > abs(b):
            p += 1
        elif a == -b:
            z += 1
        else:
            n += 1
    
    print('Somma positiva:', p, '. Negativa:', n, '. Nulla:', z)
    

    Abbiamo risolto alcuni semplici esercizi sul ciclo for in Python, nella prossima lezione approfondiremo ancora l’argomento.

    Prova gli esempi nel compilatore sotto:

    Conclusioni

    Questo articolo presenta una serie di esercizi sul ciclo for in Python, fornendo soluzioni dettagliate e spiegazioni passo dopo passo. Ecco un riassunto degli esercizi proposti:

    1. Primo esercizio sulle coppie di numeri: Abbiamo proposto un algoritmo per stampare tutte le coppie di numeri naturali la cui somma è 20.
    2. Secondo esercizio sul prodotto di coppie di numeri: Abbiamo presentato un algoritmo che conta quanti prodotti di coppie di numeri sono positivi, negativi o nulli, senza effettuare l’operazione di moltiplicazione.
    3. Terzo esercizio sulla somma di coppie di numeri: Abbiamo proposto un algoritmo simile all’esercizio precedente, ma questa volta per determinare se la somma di coppie di numeri è positiva, negativa o nulla.

    Questi esercizi proposti rappresentano un’ottima opportunità per consolidare le conoscenze acquisite sul ciclo for in Python. L’approccio graduale, partendo da esercizi più semplici e procedendo verso quelli più complessi, ha permesso di acquisire confidenza nell’utilizzare il ciclo for per risolvere una varietà di problemi.

    Gli esempi forniti illustrano in modo efficace come utilizzare il ciclo for per risolvere una varietà di problemi, incoraggiando il pensiero logico e l’adozione di un approccio sistematico alla risoluzione dei problemi. È importante sottolineare che la pratica costante è essenziale per migliorare le proprie abilità di programmazione.

    Spero che abbiate trovato utile questo articolo, vi incoraggio a continuare a esplorare nuovi concetti, a risolvere nuovi problemi e a continuare a crescere come programmatori. Potete anche esplorare il libro “50 Algoritmi per imparare Python disponibile su Amazon:

    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