Para sair da linha de comando do Python, tenho que digitar exit (). Se eu digitar exit, ele diz
Use exit() or Ctrl-Z plus Return to exit
Geralmente, ao digitar exit
, você deseja sair do programa. Por que o intérprete me deu o erro acima quando sabe que estou tentando sair da linha de comando? Por que simplesmente não sai? Eu sei que isso não importa e é uma pergunta boba, mas estou curioso.
()
no final ... caso contrário, ele pode (eventualmente) ser uma variável ... ou algum tipo de objeto ...Respostas:
No meu intérprete python
exit
é realmente uma string e não uma função -'Use Ctrl-D (i.e. EOF) to exit.'
. Você pode verificar seu intérprete digitandotype(exit)
No python ativo, o que está acontecendo é que a saída é uma função. Se você não chamar a função, ela imprimirá a representação em seqüência do objeto. Este é o comportamento padrão para qualquer objeto retornado. Só que os designers pensaram que as pessoas poderiam tentar digitar exit para sair do intérprete, de modo que tornaram a representação em string da função de saída uma mensagem útil. Você pode verificar esse comportamento digitando
str(exit)
ou mesmoprint exit
.fonte
Isso funciona para mim, a melhor maneira de sair do prompt do python.
fonte
exit()
funciona, e querem saber por que,exit
sem parênteses, não funciona. Portanto, essa resposta apenas repete parte da pergunta e na verdade não responde.Quando você digita
exit
na linha de comando, ela encontra a variável com esse nome e chama__repr__
(ou__str__
) nela. Geralmente, você obtém um resultado como:Mas eles decidiram redefinir essa função para que o
exit
objeto exibisse uma mensagem útil. Se esse é um comportamento estúpido ou não, é uma questão subjetiva, mas uma possível razão pela qual ele "simplesmente não sai" é:Suponha que você esteja visualizando algum código em um depurador, por exemplo, e um dos objetos faça referência à
exit
função. Quando o depurador tenta chamar__repr__
esse objeto para exibir essa função para você, o programa para de repente! Isso seria realmente inesperado, e as medidas para combater isso podem complicar ainda mais as coisas (por exemplo, mesmo se você limitar esse comportamento à linha de comando, e se tentar imprimir algum objeto que tenhaexit
como atributo?)fonte
import sys
, após o qual você chamaria sys.exit () para sair do intérprete.Esta mensagem é o
__str__
atributo deexit
veja estes exemplos:
1
2
3
fonte
Eu recomendo que você saia do interpretador Python com Ctrl-D. Este é o código ASCII antigo para final de arquivo ou final de transmissão.
fonte
Ctrl-Break
funciona de forma consistente no Windows.Ctrl-D
ouCtrl-Z
trabalhou no Windows para Python 2.7, 3.4, 3.6. Porém, no Python 3.7, eles pararam de funcionar e a menor sequência ASCII que existe éCtrl-Z
Enter
.Com o Anaconda 4.5+ e o Python 3.6+ no Windows, use
ou
Em alguns casos, você pode precisar usar
Se o seu computador não tiver
Break
chave, veja aqui .fonte
Como o intérprete não é um shell em que você fornece comandos, é - bem - um intérprete. O que você dá a ele é código Python.
A sintaxe do Python é tal que
exit
, por si só, não pode ser outra coisa senão o nome de um objeto. Simplesmente referir-se a um objeto não pode realmente fazer nada (exceto o que o loop read-eval-print normalmente faz; por exemplo, exibir uma representação de string do objeto).fonte
Você pode consertar isso.
Vincule
PYTHONSTARTUP
a um arquivo python com o seguinteComo é que isso funciona?
A linha de comando python é um loop de leitura-avaliação-impressão, ou seja, quando você digita texto, ele lê, avalia e, eventualmente, imprime o resultado.
Quando você digita,
exit()
ele é avaliado para um objeto que pode sersite.Quitter
chamado do tipo e chama sua__call__
função que sai do sistema. Quando você digita,exit
ele avalia o mesmo objeto que pode ser chamado, sem chamá-lo, o objeto é impresso, o que, por sua vez, chama__repr__
o objeto.Podemos tirar proveito deste ligando
__repr__
para__call__
e, assim, obter o comportamento esperado de sair do sistema, mesmo quando nós digitamosexit
sem parênteses.fonte
exit
imprimir a sequência "útil", mas não podiam simplesmente vinculá-la para fazer a coisa natural e sair do intérprete. Ser forçado a digitar os parênteses toda vez é frustrante. Esta resposta é perfeita e deve ser a aceita.Para sair do terminal Python , basta fazer o seguinte:
Por favor, preste atenção: é uma função chamada como a maioria dos usuários a mistura com a saída sem chamar, mas o novo terminal Pyhton mostra uma mensagem ...
ou como atalho, pressione:
no seu teclado ...
fonte
Se você travou na linha de comando python e nenhuma das soluções acima funcionou para você, tente
exit(2)
fonte
"exit" é um nome de variável válido que pode ser usado no seu programa Python. Você não gostaria de sair do intérprete quando estiver apenas tentando ver o valor dessa variável.
fonte
exit
, você substitui este símbolo eexit()
não funcionará mais. Embora esse símbolo seja um nome de variável válido, usá-lo dessa maneira não parece ser uma prática muito boa.