Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Por que precisa chamar a primeira função de novo?

Não entendi porque precisamos chamar a função de novo, é para 'recomeçar' o código?

5 respostas

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?

solução!

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!