1
resposta

[Dúvida] Laço while

Boa tarde,

É possível aninhar laços while? Por exemplo, eu tenho um primeiro laço para anotar as avaliações dos 3 alunos. Eu posso colocar outro laço com outro contador para mostrar uma mensagem mais ou menos assim: print('Todas as médias foram recebidas!')?

Obrigado!

1 resposta

Boa tarde!

Sim, é possível aninhar laços while em Python (e em muitas outras linguagens de programação). Isso significa que você pode ter um laço while dentro de outro laço while. Vou te mostrar um exemplo de como você pode fazer isso.

Vamos supor que você quer anotar as avaliações de 3 alunos, e para cada aluno você quer calcular a média de 3 notas. Depois, você pode imprimir uma mensagem indicando que todas as médias foram recebidas.

Aqui está um exemplo de como você pode fazer isso:

num_alunos = 3
num_notas = 3

# Contador para o número de alunos
aluno = 0

while aluno < num_alunos:
    print(f"Anotando as notas do aluno {aluno + 1}")
    
    # Contador para o número de notas de cada aluno
    nota = 0
    total_notas = 0
    
    while nota < num_notas:
        nota_atual = float(input(f"Digite a nota {nota + 1} do aluno {aluno + 1}: "))
        total_notas += nota_atual
        nota += 1
    
    media = total_notas / num_notas
    print(f"A média do aluno {aluno + 1} é: {media:.2f}\n")
    
    aluno += 1

# Mensagem final após todas as médias serem recebidas
print("Todas as médias foram recebidas!")

Neste exemplo:

  1. O primeiro laço while (externo) percorre os alunos.
  2. Para cada aluno, há um segundo laço while (interno) que percorre as notas desse aluno.
  3. Após coletar as notas e calcular a média, o programa imprime a média do aluno.
  4. Depois que todas as médias são calculadas, uma mensagem final é impressa indicando que todas as médias foram recebidas.

Ao executar este código, você verá as mensagens e as médias sendo calculadas e exibidas, e no final, a mensagem "Todas as médias foram recebidas!" será mostrada.

Espero que isso te ajude! Se tiver mais dúvidas, estou à disposição.