I cicli in Python 3
A cura del prof. Giuseppe Sportelli
Corso Coding
Didattica dell’informatica e del Coding Responsabile
Definizione di ciclo
• Per gli algoritmi un ciclo è un blocco di istruzioni ripetuto
un certo numero di volte
• Quando il numero delle ripetizioni è prefissato o noto si
parla di ciclo iterativo
• Quando il numero delle ripetizioni è stabilito da una
condizione si parla di ciclo condizionato
Ciclo iterativo
• Ogni ciclo iterativo è caratterizzato dal fatto che deve
essere definito un indice detto contatore del ciclo. La
struttura algoritmica di un ciclo iterativo è riportata sotto.
In Python
for c in range/inizio,fine,passo):
istruzione 1;
istruzione 2;
istruzione 3;
Alcune note sul ciclo for
• Sono ammessi valori interi e reali del contatore; anche
enumerativi
• I valori di partenza e di arrivo del contatore possono esseri in
incremento o decremento.
• Possono essere di esempio:
for c in range(0,10,1) da 0 a 9
for c in range(0,11,2) da 0 a 10 di passo 2
for c in range(10,20,0.5) da 10 a 20 con passo 0.5
Problema
• Scrivere una programma che stampi I multipli di 2,3
nell’intervallo 0 a 100.
La codifica in Python è:
for c in range(0,100,2):
print(c)
for c in range(0,100,3):
print(c)
Alcune note sul problema
Nel codice sono svolti due cicli for uno per I multipli di 2 e
una per quelli di 3
Modifichiamo l'esercizio inserendo da tastiera che stampi i
multipli di k in un intervallo p,q con p<q.
Algoritmo risolutivo
Commento dell'algoritmo
• Devo verificare che sono inseriti P e Q, che P sia minore
di Q (multipli positivi);
• Stiamo cercando i multipli di K quindi utilizzando un ciclo
con contatore C che inizia da P e termina a Q, devo
verificare che il resto della divisione intera (modulo) fra C
e K è zero;
• In questo caso il numero C è multiplo di K e lo visualizzo;
Codifica in python del problema
p=int(input(“inserisci p”))
q=int(input(“inserisci q”))
k=int(input(“inserisci k”))
if (p<q):
for c in range(p,q):
if (c%k=0 and c!=k):
print(k);
else:
print(“valori di p e q non validi”)
Annotazioni sul codice
• L’operatore % controlla se il resto della divisione è 0 o meno,
se è zero il numero c compreso nell’intervallo (p,q) è divisibile
per k
• Viene controllato con un if se p è minore di q;
• In caso affermativo comincia il ciclo e si controlla dentro il ciclo
quando il contatore c è divisibile per k. Infatti solo in quel caso
c sarà multiplo di k.
Cicli condizionati
• Come già detto in precedenza trattasi di cicli il cui numero
delle ripetizioni è determinato da una condizione.
• Ne esistono due varianti: un ciclo con condizione iniziale
e uno con condizione finale. (in Python è simulato)
• Nel primo caso il ciclo continua se la condizione è
verificata; mentre nel secondo caso se la condizione è
falsa.
Ciclo condizionato con condizione
iniziale
In Python la ripetizione
mentre si codifica:
while (condizone):
istruzione 1;
istruzione 2;
istruzione 3;
Ciclo con condizione finale
In Python
while (True):
istruzione 1;
istruzione 2;
if (**condizione):
break
istruzione 3
** la condizione deve essere la
negazione di quella espressa
nell’algoritmo !
Ulteriore differenza fra cicli condizionati
• Nel primo se la condizione è falsa il ciclo non viene
ripetuto;
• Nel secondo anche se la condizione non è già verificata il
corpo del ciclo viene eseguito almeno una volta;
• Sono molto utili quando l'utente deve fornire indicazioni in
merito al ciclo. Se ad esempio si devono inserire una
serie di prodotti allora è l'utente a stabilire quando
terminare.
Problema
In un negozio si vuole calcolare il valore della merce. Di ogni
prodotto sono noti il codice, la quantità e il prezzo. Calcolare
e visualizzare il totale del valore della merce.
Traccia di soluzione: Questo è un tipico problema che può
essere affrontato con i cicli condizionati. L'utente decide se
terminare l'inserimento mediante una variabile risposta che
vale S o N.
Fine lezione Cicli
Grazie per l’attenzione
prof. Giuseppe Sportelli
Revisione del 5.2021

I cicli in Python 3

  • 1.
    I cicli inPython 3 A cura del prof. Giuseppe Sportelli Corso Coding Didattica dell’informatica e del Coding Responsabile
  • 2.
    Definizione di ciclo •Per gli algoritmi un ciclo è un blocco di istruzioni ripetuto un certo numero di volte • Quando il numero delle ripetizioni è prefissato o noto si parla di ciclo iterativo • Quando il numero delle ripetizioni è stabilito da una condizione si parla di ciclo condizionato
  • 3.
    Ciclo iterativo • Ogniciclo iterativo è caratterizzato dal fatto che deve essere definito un indice detto contatore del ciclo. La struttura algoritmica di un ciclo iterativo è riportata sotto. In Python for c in range/inizio,fine,passo): istruzione 1; istruzione 2; istruzione 3;
  • 4.
    Alcune note sulciclo for • Sono ammessi valori interi e reali del contatore; anche enumerativi • I valori di partenza e di arrivo del contatore possono esseri in incremento o decremento. • Possono essere di esempio: for c in range(0,10,1) da 0 a 9 for c in range(0,11,2) da 0 a 10 di passo 2 for c in range(10,20,0.5) da 10 a 20 con passo 0.5
  • 5.
    Problema • Scrivere unaprogramma che stampi I multipli di 2,3 nell’intervallo 0 a 100. La codifica in Python è: for c in range(0,100,2): print(c) for c in range(0,100,3): print(c)
  • 6.
    Alcune note sulproblema Nel codice sono svolti due cicli for uno per I multipli di 2 e una per quelli di 3 Modifichiamo l'esercizio inserendo da tastiera che stampi i multipli di k in un intervallo p,q con p<q.
  • 7.
  • 8.
    Commento dell'algoritmo • Devoverificare che sono inseriti P e Q, che P sia minore di Q (multipli positivi); • Stiamo cercando i multipli di K quindi utilizzando un ciclo con contatore C che inizia da P e termina a Q, devo verificare che il resto della divisione intera (modulo) fra C e K è zero; • In questo caso il numero C è multiplo di K e lo visualizzo;
  • 9.
    Codifica in pythondel problema p=int(input(“inserisci p”)) q=int(input(“inserisci q”)) k=int(input(“inserisci k”)) if (p<q): for c in range(p,q): if (c%k=0 and c!=k): print(k); else: print(“valori di p e q non validi”)
  • 10.
    Annotazioni sul codice •L’operatore % controlla se il resto della divisione è 0 o meno, se è zero il numero c compreso nell’intervallo (p,q) è divisibile per k • Viene controllato con un if se p è minore di q; • In caso affermativo comincia il ciclo e si controlla dentro il ciclo quando il contatore c è divisibile per k. Infatti solo in quel caso c sarà multiplo di k.
  • 11.
    Cicli condizionati • Comegià detto in precedenza trattasi di cicli il cui numero delle ripetizioni è determinato da una condizione. • Ne esistono due varianti: un ciclo con condizione iniziale e uno con condizione finale. (in Python è simulato) • Nel primo caso il ciclo continua se la condizione è verificata; mentre nel secondo caso se la condizione è falsa.
  • 12.
    Ciclo condizionato concondizione iniziale In Python la ripetizione mentre si codifica: while (condizone): istruzione 1; istruzione 2; istruzione 3;
  • 13.
    Ciclo con condizionefinale In Python while (True): istruzione 1; istruzione 2; if (**condizione): break istruzione 3 ** la condizione deve essere la negazione di quella espressa nell’algoritmo !
  • 14.
    Ulteriore differenza fracicli condizionati • Nel primo se la condizione è falsa il ciclo non viene ripetuto; • Nel secondo anche se la condizione non è già verificata il corpo del ciclo viene eseguito almeno una volta; • Sono molto utili quando l'utente deve fornire indicazioni in merito al ciclo. Se ad esempio si devono inserire una serie di prodotti allora è l'utente a stabilire quando terminare.
  • 15.
    Problema In un negoziosi vuole calcolare il valore della merce. Di ogni prodotto sono noti il codice, la quantità e il prezzo. Calcolare e visualizzare il totale del valore della merce. Traccia di soluzione: Questo è un tipico problema che può essere affrontato con i cicli condizionati. L'utente decide se terminare l'inserimento mediante una variabile risposta che vale S o N.
  • 16.
    Fine lezione Cicli Grazieper l’attenzione prof. Giuseppe Sportelli Revisione del 5.2021