1
resposta

codigo

voluntarios=[]
z=input("Digite o nome do voluntário ou digite sair para encerrar o programa")
while z!= "sair":
        voluntarios.append(z)
        print(voluntarios)
        z=input("Digite o nome do voluntário ou sair para encerrar o programa")
if z=="sair":
    print("Você encerrou o programa")
1 resposta

Oii, Arthur!

É muito positivo ver que você aplicou os conceitos de listas e laços de repetição de forma funcional. O seu código resolve o problema proposto e demonstra que você compreendeu bem o papel da variável de controle no laço while.

Tenho alguns pontos de análise e sugestões pra o aprimoramento do seu código.

Pontos positivos:

  • Lógica estruturada: Você utilizou corretamente a inicialização da variável fora do laço e a atualização dela ao final de cada iteração, o que é fundamental para evitar laços infinitos.
  • Manipulação de listas: O método append foi aplicado no momento certo, garantindo que o nome seja armazenado apenas se o critério de parada não for atendido.
  • Mensagem de encerramento: É uma boa prática dar um retorno ao usuário confirmando que o programa foi finalizado conforme o esperado.

Sugestões de melhoria:

  1. Redução de redundância (princípio DRY): Note que a frase do input foi escrita duas vezes no seu código. Uma alternativa pra evitar essa repetição é utilizar a estrutura "while True" combinada com o comando "break", como visto na resolução do instrutor.
  2. Tratamento de case sensitivity: No Python, "sair" é diferente de "SAIR". Se o usuário digitar em letras maiúsculas, o programa continuará rodando. Você pode resolver isso utilizando o método ".lower()" na verificação da variável.
  3. Escopo da exibição: Atualmente, seu código imprime a lista a cada novo nome adicionado. Para seguir o requisito de exibir a lista completa apenas no final, basta mover o comando de impressão para fora do bloco de repetição (removendo a indentação).

Exemplo de ajuste:

voluntarios = []

while True:
    nome = input("Digite o nome do voluntário (ou 'sair' para encerrar): ").strip()
    
    if nome.lower() == 'sair':
        break
        
    voluntarios.append(nome)

print(f"\nRegistro concluído com sucesso. Voluntários registrados: {voluntarios}")

Parabéns pelo empenho nos estudos e pela publicação no fórum. A prática constante é o que consolida o aprendizado em programação.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!