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:
- 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.
- 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.
- 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.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!