Oi Fábio, tudo bem? 😊
A sua dúvida é muito comum! 🤔
O try/except
funciona da seguinte forma:
- O bloco dentro do
try
é executado. - Se ocorrer um erro durante a execução desse bloco, o Python interrompe a execução do
try
e procura por um bloco except
que corresponda ao tipo de erro ocorrido. - Se um bloco
except
correspondente for encontrado, o código dentro desse bloco é executado. - Se nenhum erro ocorrer no bloco
try
, o bloco except
é ignorado.
No seu código, o try
tenta converter a entrada do usuário para um inteiro. Se o usuário digitar algo que não pode ser convertido para um inteiro (por exemplo, uma letra), um erro ocorrerá e o bloco except
será executado.
Dentro do except
, a função opcao_invalida()
é chamada. Essa função provavelmente exibe uma mensagem de erro para o usuário.
Após o except
, o programa continua a execução normalmente. No seu caso, após o except
, o programa não faz nada.
A função main()
é chamada dentro do bloco else
. O bloco else
é executado somente se nenhum erro ocorrer dentro do bloco try
. No seu caso, o bloco else
é executado somente se o usuário digitar um número inteiro válido.
Dentro do else
, o programa verifica se a opção escolhida pelo usuário é válida (1 a 4). Se a opção for inválida, a função opcao_invalida()
é chamada e a função main()
é chamada novamente. Isso faz com que o programa volte ao início e peça para o usuário escolher uma opção novamente.
Em resumo:
- O
except
é executado quando o usuário digita algo que não é um número inteiro. - O
else
é executado quando o usuário digita um número inteiro válido. - A função
main()
é chamada novamente quando o usuário digita uma opção inválida.
Espero ter ajudado a esclarecer sua dúvida! 💪
🎓 Para saber mais: