while, ripetizione controllata e accumuloQuesti esercizi introducono il ciclo while, mostrando:
break per interrompere deliberatamente un ciclo infinito;Ogni esempio mostra una variante diversa del controllo del ciclo, aumentando gradualmente la complessità.
# Programma che legge una sequenza di 8 bit, la converte in decimale e poi
# chiede all'utente se vuole continuare.
# È una versione ampliata di Es6, con ciclo while True e break.
while True:
bits = input("Inserisci sequenza di 8 bit ")
somma = 0
for i in range(8):
bit = int(bits[i])
somma += bit * 2**(7-i)
print(somma)
ancora = input("Esegui ancora? (S/N) ")
if ancora == "N":
break
# Programma che gioca alla morra cinese fino a quando uno dei giocatori
# raggiunge un certo numero di vittorie.
numpartite = int(input("Inserisci numero vittorie da raggiungere "))
v1 = 0 # Vittorie giocatore 1
v2 = 0 # Vittorie giocatore 2
while (v1 < numpartite) and (v2 < numpartite):
g1 = input("Inserisci mossa giocatore 1 ")
g2 = input("Inserisci mossa giocatore 2 ")
if g1 == "S" and g2 == "S":
print("Patta")
elif g1 == "S" and g2 == "C":
print("Vince il giocatore 2")
v2 += 1
elif g1 == "S" and g2 == "F":
print("Vince il giocatore 1")
v1 += 1
elif g1 == "C" and g2 == "S":
print("Vince il giocatore 1")
v1 += 1
elif g1 == "C" and g2 == "C":
print("Patta")
elif g1 == "C" and g2 == "F":
print("Vince il giocatore 2")
v2 += 1
elif g1 == "F" and g2 == "S":
print("Vince il giocatore 2")
v2 += 1
elif g1 == "F" and g2 == "C":
print("Vince il giocatore 1")
v1 += 1
elif g1 == "F" and g2 == "F":
print("Patta")
print("Vittorie del giocatore 1:", v1, "Vittorie del giocatore 2:", v2)
# Programma che legge una sequenza di 8 bit e la converte in decimale.
bits = input("Inserisci sequenza di 8 bit ")
somma = 0
for i in range(8):
bit = int(bits[i])
somma += bit * 2**(7-i)
print(somma)
# Programma che somma i numeri da 1 a n usando prima un while e poi un for.
n = int(input("Inserisci valore massimo n "))
somma = 0
i = 1
while i <= n:
somma += i
i = i + 1
print(somma)
somma = 0
for i in range(1, n+1):
somma += i
print(somma)
# Programma che somma una sequenza di numeri.
# Dopo ogni numero chiede se continuare.
somma = 0
finito = False
while not finito:
numero = int(input("Inserisci numero "))
somma += numero
continua = input("Continua ? (S/N) ")
if continua == "N":
finito = True
print(somma)
# Variante del precedente: usa while True + break.
somma = 0
while True:
numero = int(input("Inserisci numero "))
somma += numero
continua = input("Continua ? (S/N) ")
if continua == "N":
break
print(somma)
# Programma che somma numeri finché non viene inserito lo 0.
somma = 0
finito = False
while not finito:
numero = int(input("Inserisci numero, 0 per finire "))
if numero == 0:
finito = True
else:
somma += numero
print(somma)