1
resposta

[Dúvida] Dúvida no uso do main

Até a aula 6, módulo 3 do curso, fomos ensinados a utilizar o main no final de toda função para chamar o menu, mas fui pesquisar no chat gpt e ele falou que o uso desse main excessivo estava errado, e que poderia ao invés disso, usar:

def main():
while True:
exibir_programa()
exibir_menu()
escolher_menu()

Ele está correto?

1 resposta

Oii, Vitor! tudo bem?

Excelente observação! Muito legal ver você buscando outras fontes e questionando a estrutura do código, isso é essencial para evoluir na programação.

O jeito que o instrutor Guilherme fez não está errado para o objetivo didático atual. Vou te explicar o porquê:

1. O que acontece no código da aula (recursividade)
Quando chamamos a função main() dentro de listar_restaurantes(), estamos criando uma espécie de ciclo. Se o usuário ficar navegando no menu centenas de vezes sem parar, o computador vai "empilhando" essas chamadas na memória até que, eventualmente, pode dar um erro chamado RecursionError (ou "estouro de pilha").

  • Por que o professor fez assim? Pra quem está começando, é mais intuitivo pensar em "voltar para o início" chamando a função principal novamente do que gerenciar um loop infinito. Para o tamanho deste projeto, isso não causará problemas de performance.

2. A sugestão do ChatGPT (laço de repetição):

A estrutura com while True é a forma profissional de criar menus.

  • Ela mantém o programa rodando em um ciclo "eterno" no mesmo lugar da memória, sem empilhar chamadas.
  • Quando uma função termina, ela naturalmente devolve o controle para o while no menu principal.

Você pode seguir a sugestão do ChatGPT sem medo! Mas não se preocupe se quiser manter o padrão do curso por enquanto; a ideia agora é focar na lógica de manipulação de listas e funções. Mais para frente, a complexidade da estrutura vai aumentando naturalmente.

Parabéns pela curiosidade!

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