Aulas do bloco

← Aulas

PythonAula 1404/09/20261h35

Repetição com while, break e continue

Retoma decisões com if/else e match/case, leitura com input() e float() e apresentação com f-string. O RPG já usou while na batalha; agora a aula aprofunda a repetição, o contador com +=, a flag de controle, a parada com break e o pulo com continue no programa da média.

O que foi falado

  1. while repete enquanto condição for True

    00:15:11

    O while testa uma condição e repete o bloco indentado enquanto ela for True. Quando a condição é False, sai do laço; se já começar falsa, o bloco não executa. A repetição precisa ter uma forma de terminar quando esse for o objetivo, seja mudando a condição ou usando break.

    Python
    ligado = True
    while ligado:
        print("oi")
        ligado = False

    Saída

    oi
  2. Contador com += para repetir 3 vezes

    00:31:54

    Cria repeticoes = 0 fora do laço para contar. Dentro soma com repeticoes += 1, que é o atalho para repeticoes = repeticoes + 1. Com repeticoes <= 2 o bloco roda 3 vezes, e Python não tem ++ de outras linguagens.

    Python
    repeticoes = 0
    while repeticoes <= 2:
        print(repeticoes)
        repeticoes += 1

    Saída

    0
    1
    2
  3. Média com somatório, contador e round()

    00:56:08

    Cria somatorio = 0 e quantidade = 0 fora do while, senão Python dá erro por usar variável que nunca foi criada. A cada volta soma a nota e conta com quantidade += 1. No fim calcula media = somatorio / quantidade, arredonda com round(media, 2) e mostra com f-string colocando o valor entre {}.

    Python
    somatorio = 0
    quantidade = 0
    nota = 8.0
    while quantidade < 1:
        somatorio += nota
        quantidade += 1
    media = somatorio / quantidade
    print(f"{media}")

    Saída

    8.0
  4. Parar com "parar" usando flag

    01:15:47

    Usa solicitar_notas = True como flag para manter o while rodando. Se texto for "parar" troca para False para encerrar e mostrar a média final. Inicializa media_notas = 0 fora, senão digitar "parar" de cara dá erro porque media_notas nunca foi criada no else.

    Python
    solicitar_notas = True
    while solicitar_notas:
        print("pede nota")
        solicitar_notas = False
    print("fim")

    Saída

    pede nota
    fim
  5. break sai e continue pula a vez

    01:28:07

    Troca a flag por while True com break logo no if, que sai na hora sem precisar de else aninhado. Para validar usa if nota < 0 or nota > 10 com continue, que pula o resto e volta para a próxima volta sem somar. Assim só nota válida entra no somatorio.

    Python
    repeticoes = 0
    while repeticoes < 3:
        repeticoes += 1
        if repeticoes == 2:
            continue
        print(repeticoes)

    Saída

    1
    3

Perguntas que valem a pena

Por que o while não roda uma vez só?00:19:08

Porque while repete enquanto a condição for True e nada dentro torna a condição False.

O loop infinito consome memória até o limite?00:19:27

O consumo depende do código repetido. Repetir instruções usa CPU; se o laço acumular dados, também pode aumentar o uso de memória.

Tem como determinar quantas vezes o while vai rodar?00:28:52

Sim, é nossa responsabilidade codar a parada da repetição.

É obrigatório zerar a variável antes do laço?01:08:28

A variável precisa estar inicializada antes de seu valor ser usado. O valor inicial depende do objetivo; nos exemplos de somatório e contador da aula, começa em zero.

Conceitos da aula

  • while
  • loop infinito
  • iteração
  • contador
  • +=
  • somatório
  • f-strings
  • round()
  • flag
  • break
  • continue
  • validação de entrada

Reforce este assunto

9 exercíciosComeçar →