Não entendi porque precisamos chamar a função de novo, é para 'recomeçar' o código?
Não entendi porque precisamos chamar a função de novo, é para 'recomeçar' o código?
Bruno, é isso mesmo!
No código
while(escolha != '0'):
print 'Digite: 1 para cadastrar, 0 para terminar'
escolha = raw_input()
if(escolha == '1'):
cadastrar(nomes)
...
Enquanto o usuário digitar algum número diferente de 0 (zero), o laço (programa) continuará a ser executado.
Quando o usuário digitar 1 (um), a função cadastrar() será invocada novamente, para cadastrar um novo nome.
O chamamento da função menu() no fim do código é pelo mesmo motivo?
Quando você cria uma função com def, você não está chamando (ou invocando) essa função, está apenas definindo. Por isso, no final do código há a chamada à função que apresenta o menu ao usuário, que ocorre na linha que contém esse código:
menu()
Assim, o interpretador python vai varrer o arquivo desde o início, detectar as funções que foram criadas, mas não vai executar nenhuma, porque não solicitamos.
Daí, quando ele chegar à última linha, ele vai encontrar a chamada (ou invocação) à função menu() e o programa terá, então, início.
Boa alunos. A última resposta de Manoel é por onde eu iria na explicação.
Bruno vi que você fez o curso de lógica de programação, perfeito, mas eu regravei o curso e talvez ele te prepare ainda melhor para aprender outras linguagens. Confira depois o curso se assim desejar
https://www.alura.com.br/curso-online-logica-programacao-javascript-html
É muito bom ver meus alunos aqui no fórum! Abraço galera!
Vou dar uma olhada no curso professor. Obrigado a todos pela ajuda!