Quando você cria um arquivo .py, esse arquivo é simplesmente um arquivo de texto contendo algum código que você escreveu. É o mesmo código que executamos no terminal e o interpretador do Python entende ele da exata mesma forma. Essa extensão .py está ali apenas para marcar que dentro daquele arquivo existe código Python.
Assim, quando você clica nesse arquivo .py o seu sistema operacional já sabe que quem deve abrir arquivo é o Python, pois ele já sabe que essa extensão diz respeito a um arquivo que contém código Python.
Quando queremos executar esse código no terminal temos duas opções. A primeira seria abrir um terminal na pasta onde está o arquivo e executar o seguinte comando:
python app.py
Esse código faz a mesma coisa que clicar 2 vezes no arquivo .py. Mas é importante que o terminal esteja aberto na mesma pasta do arquivo. Você pode verificar isso com o comando(caso esteja no windows):
dir
A segunda forma é importando esse arquivo como módulo dentro do nosso terminal do Python. Novamente na mesma pasta do arquivo execute a função:
python
Isso irá iniciar o terminal do Python, você perceberá a diferença pois o cursor do terminal irá se tornar este três "setas" ( >>> )
Aqui dentro você pode escrever qualquer código Python. Para importar um módulo, no nosso caso, app.py, basta digitar esse comando:
import app
Veja que não precisamos usar a extensão, pois o interpretador já sabe que há código Python dentro do arquivo por causa da extensão.
Espero ter ajudado, qualquer dúvida pode voltar a perguntar.