18. Judici `` mentre ''

El judici `mentre '' us permet executar un bloc de codi diverses vegades mentre es compleix una condició.

És un tipus de bucle amb condició. S'utilitza quan no sabem exactament quantes vegades cal executar un bloc de codi, però sabem quina condició s'ha de complir.

Exemple de programa que afegeix preus mentre que el total és inferior a 1000

suma = 0

while suma < 1000:
    precio = input('Introduce un precio: ')
    suma = suma + int(precio)

print('La suma de todos los precios es mayor de 1000')

Judici `` Wheeture True ''

També podeu utilitzar el `` `'

while True:
    print('Hola, mundo!')

Per aturar el funcionament d’aquest programa, heu de prémer les tecles [Control] + [C].

El programa anterior no és gaire funcional perquè no té condicions per aturar -se. Ara veurem un altre exemple amb el judici `mentre '' que s'atura gràcies a una frase '' break '' després d'escriure la paraula 'final'

while True:
    nombre = input('Escribe tu nombre: ')
    if nombre == 'fin':
        break
    print('Hola', nombre)

Aquesta construcció equival a dir que s’executa un bloc d’instruccions ** fins que es compleix una condició.

Exercicis

  1. Escriviu un programa amb el judici `` while '' que imprimeix tots els números de 0 a 10.

    Pista

    contador = 0
    while ... :
        ...
        contador = contador + 1
    
  2. Modifiqueu el programa anterior per imprimir tots els números de 10 a 0.

  3. Escriviu un programa que afegeixi tots els números sencers a partir d’1 i s’aturi quan la suma és superior o igual a 1000.

    Al final, heu d’escriure de quin número ha afegit el número i quant és la suma.

    Pista

    suma = 0
    contador = 1
    while ... :
        ...
    
  4. Escriviu un programa que es repeteixi repetidament fins que la lletra "n" s'introdueixi a la pregunta "a la pregunta" Voleu continuar? (S/n) '.

    Pista

    while True:
        respuesta = input( ... )
    
  5. Escriviu un programa que imprimeixi la successió de Fibonacci <https://es.wikipedia.org/wiki/sucesi%C3%B3n_de_fibonacci>`__ al número 1000.

    Pista

    a = 0
    b = 1
    while ... :
        print(b)
        suma = a + b
        a = b
        b = suma
    
  6. Escriviu un programa que reprodueixi amb l'usuari per endevinar un número. Si el nombre introduït és superior al número secret, heu d'imprimir una pista dient "massa alta". També heu d'imprimir una pista "massa baixa" per a números més petita que el número secret.

    Quan l'usuari continua el número secret, el programa ha d'imprimir "lluita" i aturar -se.

    Pista

    import random
    numero_secreto = random.randint(1, 100)
    
    while True:
        ...