Esse comando de "pressione uma tecla para voltar ao menu inicial" só funciona com a tecla ENTER (pelo menos no meu pc), não deveria funcionar com qualquer tecla (se levarmos o comando ao pé da letra)?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Esse comando de "pressione uma tecla para voltar ao menu inicial" só funciona com a tecla ENTER (pelo menos no meu pc), não deveria funcionar com qualquer tecla (se levarmos o comando ao pé da letra)?
Olá, Priscylla! Tudo bem?
No entanto, no contexto do código apresentado na aula, a função input() do Python está sendo usada para pausar o programa até que o usuário pressione a tecla ENTER.
Vamos analisar o trecho do código:
def opcao_invalida():
print('Opção Inválida!\n')
input('Digite uma tecla para voltar ao menu principal')
main()
Neste caso, a função input() está sendo usada para pausar o programa e aguardar que o usuário pressione a tecla ENTER. O texto que aparece entre parênteses é apenas uma mensagem para o usuário, não afeta o comportamento da função. Portanto, mesmo que a mensagem peça para o usuário pressionar qualquer tecla, o programa só continuará quando a tecla ENTER for pressionada.
Se você quiser que o programa continue com qualquer tecla pressionada, terá que usar uma biblioteca específica para isso, como a msvcrt (apenas para Windows) ou a curses (para Linux). No entanto, essas bibliotecas são um pouco mais complexas e podem não ser adequadas para um iniciante em Python.
Aqui está um exemplo de como você poderia fazer isso com a biblioteca msvcrt:
import msvcrt
def opcao_invalida():
print('Opção Inválida!\n')
print('Pressione qualquer tecla para voltar ao menu principal')
msvcrt.getch() # Aguarda o usuário pressionar qualquer tecla
main()
Lembre-se que essa solução só funcionará em sistemas Windows e pode apresentar comportamentos inesperados em outros sistemas operacionais.
Espero ter ajudado e bons estudos!