Exercicis amb for
Exercici 1 — Comptar de l’1 al 10
Mostra per pantalla els números de l’1 al 10 utilitzant un bucle for amb range().
Exercici 2 — Comptar enrere
Mostra els números del 10 al 1 utilitzant un bucle for amb range() i un pas negatiu.
Exercici 3 — Suma dels primers 10 números
Calcula la suma dels números de l’1 al 10 utilitzant un bucle for. Mostra el resultat final.
Exercici 4 — Demanar un número positiu
Dona fins a 5 intents a l’usuari per a introduir un número positiu.
- Si l’usuari introduïx un número positiu, mostra’l i acaba el programa.
- Si després de 5 intents no ho fa correctament, mostra un missatge indicant que s’han esgotat els intents.
Utilitza un bucle for i break.
Exercici 5 — Taula de multiplicar
Demana un número a l’usuari i mostra la seua taula de multiplicar del 1 al 10 utilitzant un bucle for.
Exercici 6 — Comptar números introduïts
Demana 10 números a l’usuari utilitzant un bucle for. Compta quants d’estos números són diferents de 0 i mostra el resultat final.
Exercici 7 — Suma fins a parar
Demana fins a 10 números a l’usuari i suma’ls.
- El programa ha d’acabar abans si l’usuari introduïx un número negatiu.
- El número negatiu no s’ha d’incloure en la suma.
Utilitza un bucle for i break.
Exercici 8 — Control d’intents
Demana una contrasenya a l’usuari. Té 3 intents com a màxim per a escriure “python123”.
- Si l’encerta, mostra “Accés concedit” i para el programa.
- Si falla els 3 intents, mostra “Accés bloquejat”.
Utilitza un bucle for.
Exercici 9 — Mitjana de notes
Demana fins a 10 notes a l’usuari.
- El programa ha d’acabar abans si l’usuari escriu -1.
- Calcula i mostra la mitjana de les notes introduïdes (sense incloure el -1).
- Si no s’ha introduït cap nota vàlida, mostra un missatge indicant-ho.
Utilitza un bucle for i break.
Exercici 10 — Menú repetitiu
Mostra un menú amb les opcions següents:
- Saludar
- Mostrar un número
- Eixir
El menú s’ha de repetir fins que l’usuari trie l’opció 3.
Com que amb for el nombre de repeticions sol ser conegut, simula un bucle indefinit utilitzant un for amb un range gran i break quan l’usuari trie eixir.
- Si tria 1, mostra un missatge de salutació.
- Si tria 2, demana un número i mostra’l.
- Si tria qualsevol altra opció, mostra “Opció no vàlida”.
Errors amb bucles for
Exercici 1
for i in range(1, 6):
print(i)
i = i + 1
Solució
Error: modificació manual de la variable de control del for.
Explicació: En un bucle for, la variable de control (i) es gestiona automàticament. El canvi i = i + 1 no té efecte real i pot confondre el comportament del bucle.
for i in range(1, 6):
print(i)
Exercici 2
for i in range(10, 1):
print(i)
Solució
Error: rang incorrecte.
Explicació: range(10, 1) no genera cap valor perquè el valor inicial és major que el final i no hi ha pas negatiu.
for i in range(10, 0, -1):
print(i)
Exercici 3
suma = 0
for i in range(1, 10):
suma = suma + i
print("Suma:", suma)
Solució
Error: rang incomplet.
Explicació: range(1, 10) genera els valors de l’1 al 9. Si volem sumar fins a 10, cal que el límit superior siga 11.
suma = 0
for i in range(1, 11):
suma = suma + i
print("Suma:", suma)
Exercici 4
for i in range(5)
print(i)
Solució
Error: falta el caràcter : al final del for.
Explicació: Tots els bucles for han d’acabar amb dos punts abans del bloc indentat.
for i in range(5):
print(i)
Exercici 5
for i in range(1, 6):
print(i)
Solució
Error: falta d’indentació dins del bucle.
Explicació: El codi que forma part del bucle ha d’estar correctament indentat.
for i in range(1, 6):
print(i)
Exercici 6
num = int(input("Introdueix un número: "))
for i in range(1, 11):
print(num, "x", i, "=", num * i)
break
Solució
Error: ús incorrecte de break.
Explicació: El break fa que el bucle acabe en la primera iteració, per tant només es mostra una línia de la taula.
num = int(input("Introdueix un número: "))
for i in range(1, 11):
print(num, "x", i, "=", num * i)
Exercici 7
for i in range(3):
password = input("Contrasenya: ")
if password == "python123":
print("Accés concedit")
else:
print("Accés bloquejat")
Solució
Error: falta break quan la contrasenya és correcta.
Explicació: Sense break, el bucle continua i el else del for s’executa encara que l’usuari haja encertat la contrasenya.
for i in range(3):
password = input("Contrasenya: ")
if password == "python123":
print("Accés concedit")
break
else:
print("Accés bloquejat")
Exercici 8
for i in range(1, 11):
suma = suma + i
print(suma)
Solució
Error: variable no inicialitzada.
Explicació: La variable suma s’utilitza abans de ser creada, cosa que provoca un error d’execució.
suma = 0
for i in range(1, 11):
suma = suma + i
print(suma)
Exercici 9
for i in range(10, 0, 1):
print(i)
Solució
Error: pas incorrecte en el range.
Explicació: El pas és positiu (1), però el valor inicial és major que el final. El bucle no s’executa mai.
for i in range(10, 0, -1):
print(i)
Exercici 10
opcio = int(input("Opció: "))
for i in range(1000):
print("1. Saludar")
print("2. Mostrar número")
print("3. Eixir")
if opcio == 1:
print("Hola")
elif opcio == 2:
num = int(input("Número: "))
print(num)
elif opcio == 3:
break
Solució
Error: l’opció només es demana una vegada.
Explicació: El valor de opcio no canvia dins del bucle, per tant el menú no funciona correctament.
for i in range(1000):
print("1. Saludar")
print("2. Mostrar número")
print("3. Eixir")
opcio = int(input("Opció: "))
if opcio == 1:
print("Hola")
elif opcio == 2:
num = int(input("Número: "))
print(num)
elif opcio == 3:
break
else:
print("Opció no vàlida")
Cas pràctic — Comptador i suma amb menú
Crea un programa en Python que mostre un menú utilitzant un bucle for per a simular una repetició indefinida.
El programa ha de fer el següent:
Mostra un menú d’opcions:
- Comptar de l’1 al N
- Sumar de l’1 al N
- Mostrar parells fins a N
- Eixir
Demana a l’usuari que trie una opció.
El programa s’ha de repetir fins que l’usuari trie l’opció 0. Quan això passe, utilitza break per a eixir del bucle.
Si l’usuari introduïx una opció incorrecta, mostra un missatge d’error i torna a mostrar el menú.
Quan l’usuari trie una opció vàlida (1, 2 o 3):
- Demana un número N (enter positiu).
- Si N no és positiu, mostra un missatge d’error i torna al menú.
Funcionament de cada opció:
- Opció 1: mostra els números de l’1 al N utilitzant
forirange(). - Opció 2: calcula i mostra la suma de l’1 al N utilitzant un bucle for.
- Opció 3: mostra els números parells des de 0 fins a N utilitzant
range(0, N + 1, 2).