Só percebi que há exit(0)que é discutido nesta questão e também um com um sublinhado _exit(0), a diferença é explicada aqui
cardamomo
O bom desses códigos é que eles podem ser usados diretamente em uma ifdeclaração em um bashwrapper, para que outras ações possam ser executadas se o programa Python for bem-sucedido ou se tiver um status diferente de zero.
SDsolar 5/05
estranho, se 0 é falso e 1 é verdade em Python, você acha que os números significaria o oposto
Monica Heddneck
Respostas:
248
0 e 1 são os códigos de saída.
exit(0) significa uma saída limpa, sem erros / problemas
exit(1) significa que houve algum problema / erro / problema e é por isso que o programa está saindo.
Isso não é específico do Python e é bastante comum. Um código de saída diferente de zero é tratado como uma saída anormal e, às vezes, o código de erro indica qual foi o problema. Um código de erro zero significa uma saída bem-sucedida.
Isso é útil para outros programas, shell, chamador etc. saberem o que aconteceu com o seu programa e proceder de acordo.
@ Faizan: O código de saída é um valor de 8 bits no Unix. Se você chamar exit(-1), o valor será equivalente a exit(255)- os 8 bits menos significativos são retransmitidos para o programa de chamada (shell ou o que for).
Jonathan Leffler 06/02
4
Observe que, de acordo com os documentos , exit()é adicionado pelo sitemódulo e não deve ser usado pelos programas. Em vez disso, use sys.exit(), ou mesmo raise SystemExit, se você não deseja importar outro módulo.
daviewales 22/08/19
2
Por causa dos códigos de saída do Unix / Linux, eu estava pensando que 0 é True e 1 é valor False nas condições Python.
vlyalcin
19
Isso determina o status da saída de do programa quando ele termina a execução (geralmente 0 para êxito e 1 para erro).
Não é exclusivo do Python, e o efeito exato depende do seu sistema operacional e da forma como o programa é chamado (embora 99% das vezes, se você estiver apenas executando scripts do Python, isso não importa).
A convenção padrão para todos os programas C, incluindo Python, é para exit(0)indicar sucesso eexit(1) ou qualquer outro valor diferente de zero (no intervalo de 1 a 255) para indicar falha. Qualquer valor fora do intervalo 0..255 é tratado no módulo 256 (o status de saída é armazenado em um valor de 8 bits). Às vezes, isso será tratado como assinado (para que você possa ver -128, -127, etc), mas mais geralmente é tratado como não assinado.
Esse status está disponível para o código que chamou o Python. Esta convenção se aplica a plataformas, embora o significado do status de saída diferente de zero possa variar em plataformas diferentes.
O número que você passa para o exit() função é simplesmente o código de retorno do seu programa, que é fornecido ao sistema operacional. Do ponto de vista do seu programa, não há diferença: a execução terminará nos dois casos e o valor fornecido à função será fornecido ao sistema operacional. Mas algumas ferramentas e scripts levam em consideração o código de saída do programa. A maioria das ferramentas retorna 0 quando é bem-sucedida e diferente de zero para indicar um erro.
Portanto, se o seu programa for executado a partir de um script, de uma ferramenta automatizada ou de outro software que leve em consideração o código de retorno (como um IDE), você deve ter cuidado com o que retornar.
Em caso de dúvida, basta retornar 0 para indicar que tudo está OK.
exit()
os documentos , que levei uma eternidade para encontrar.The site module (which is imported automatically during startup, except if the -S command-line option is given) adds several constants to the built-in namespace. They are useful for the interactive interpreter shell and should not be used in programs
sys.exit()
exit(0)
que é discutido nesta questão e também um com um sublinhado_exit(0)
, a diferença é explicada aquiif
declaração em umbash
wrapper, para que outras ações possam ser executadas se o programa Python for bem-sucedido ou se tiver um status diferente de zero.Respostas:
0 e 1 são os códigos de saída.
exit(0)
significa uma saída limpa, sem erros / problemasexit(1)
significa que houve algum problema / erro / problema e é por isso que o programa está saindo.Isso não é específico do Python e é bastante comum. Um código de saída diferente de zero é tratado como uma saída anormal e, às vezes, o código de erro indica qual foi o problema. Um código de erro zero significa uma saída bem-sucedida.
Isso é útil para outros programas, shell, chamador etc. saberem o que aconteceu com o seu programa e proceder de acordo.
fonte
exit(-1)
, o valor será equivalente aexit(255)
- os 8 bits menos significativos são retransmitidos para o programa de chamada (shell ou o que for).exit()
é adicionado pelosite
módulo e não deve ser usado pelos programas. Em vez disso, usesys.exit()
, ou mesmoraise SystemExit
, se você não deseja importar outro módulo.Isso determina o status da saída de do programa quando ele termina a execução (geralmente 0 para êxito e 1 para erro).
Não é exclusivo do Python, e o efeito exato depende do seu sistema operacional e da forma como o programa é chamado (embora 99% das vezes, se você estiver apenas executando scripts do Python, isso não importa).
fonte
A convenção padrão para todos os programas C, incluindo Python, é para
exit(0)
indicar sucesso eexit(1)
ou qualquer outro valor diferente de zero (no intervalo de 1 a 255) para indicar falha. Qualquer valor fora do intervalo 0..255 é tratado no módulo 256 (o status de saída é armazenado em um valor de 8 bits). Às vezes, isso será tratado como assinado (para que você possa ver -128, -127, etc), mas mais geralmente é tratado como não assinado.Esse status está disponível para o código que chamou o Python. Esta convenção se aplica a plataformas, embora o significado do status de saída diferente de zero possa variar em plataformas diferentes.
fonte
O número que você passa para o
exit()
função é simplesmente o código de retorno do seu programa, que é fornecido ao sistema operacional. Do ponto de vista do seu programa, não há diferença: a execução terminará nos dois casos e o valor fornecido à função será fornecido ao sistema operacional. Mas algumas ferramentas e scripts levam em consideração o código de saída do programa. A maioria das ferramentas retorna 0 quando é bem-sucedida e diferente de zero para indicar um erro.Portanto, se o seu programa for executado a partir de um script, de uma ferramenta automatizada ou de outro software que leve em consideração o código de retorno (como um IDE), você deve ter cuidado com o que retornar.
Em caso de dúvida, basta retornar 0 para indicar que tudo está OK.
fonte
exit(0)
: Isso faz com que o programa saia com uma finalização bem-sucedida.exit(1)
: Isso faz com que o programa saia com um significado específico do sistema.Em muitos sistemas,
exit(1)
sinaliza algum tipo de falha, porém não há garantia.Pelo que me lembro, o padrão C reconhece apenas três valores de saída padrão:
EXIT_SUCCESS
- rescisão bem sucedidaEXIT_FAILURE
- rescisão sem êxito0
-- igual aEXIT_SUCCESS
fonte