파이썬에서 exit (0)과 exit (1)의 차이점


167

파이썬 exit(0)exit(1)파이썬 의 차이점은 무엇입니까 ?

나는 둘러 보았지만이 줄에 대한 구체적인 질문을 찾지 못했습니다. 이미 답변을 받았다면 링크로 충분합니다.


9
exit()docs에 링크가 있습니다.
Ryne Everett


exit(0)이 질문에서 논의되고 밑줄이있는 것이 있다는 것을 깨달았습니다 _exit(0). 차이점은 여기
cardamom

이 코드의 좋은 점은 래퍼 의 if명령문에서 직접 사용할 bash수 있으므로 Python 프로그램의 성공 여부에 관계없이 추가 조치를 취할 수 있다는 것입니다.
SDsolar

0은 거짓, 1은 파이썬에서 True 인 경우 이상한은, 당신은 숫자가 반대 의미하는 것 같아
모니카 Heddneck

답변:


248

종료 코드는 0과 1입니다.

exit(0) 오류 / 문제없이 깨끗한 출구를 의미합니다.

exit(1) 문제 / 오류 / 문제가 있음을 의미하므로 프로그램이 종료됩니다.

이것은 파이썬과 관련이 없으며 매우 일반적입니다. 0이 아닌 종료 코드는 비정상 종료로 처리되며 때때로 오류 코드는 문제점을 나타냅니다. 오류 코드 0은 성공적인 종료를 의미합니다.

이것은 다른 프로그램, 쉘, 호출자 등이 프로그램에서 발생한 일을 알고 그에 따라 진행하는 데 유용합니다.


10
그리고 exit (-1)는 어떻습니까?
Faizan

16
@Faizan : 종료 코드는 Unix에서 8 비트 값입니다. 당신이 호출 exit(-1)하면 그 값은 다음과 같습니다 exit(255)-최하위 8 비트가 호출 프로그램 (쉘 또는 기타)에 릴레이됩니다.
Jonathan Leffler

4
에 따라 유의 워드 프로세서 , exit()에 의해 추가 site모듈 및 프로그램에서 사용되어서는 안된다. 대신 다른 모듈을 가져 오지 않으려면 sys.exit()또는을 사용하십시오 raise SystemExit.
daviewales

2
유닉스 / 리눅스의 종료 코드로 인해 파이썬 조건에서 0은 True이고 1은 False 값이라고 생각했습니다.
vlyalcin

19

실행이 완료 될 때 프로그램 의 종료 상태 를 결정합니다 (일반적으로 0은 성공, 1은 오류).

파이썬 고유의 것은 아니며 정확한 효과는 운영 체제와 프로그램 호출 방식에 달려 있습니다 (99 %의 시간이지만 파이썬 스크립트를 실행하는 경우 중요하지 않습니다).


12

Python을 포함한 모든 C 프로그램의 표준 규칙 exit(0)은 성공을 나타내 exit(1)거나 실패를 나타내는 0이 아닌 다른 값 (1..255 범위)을 나타내는 것입니다. 0..255 범위를 벗어난 값은 모듈로 256으로 처리됩니다 (종료 상태는 8 비트 값으로 저장 됨). 때로는 서명 된 것으로 취급되므로 (-128, -127 등이 표시 될 수 있음) 더 일반적으로 서명되지 않은 것으로 취급됩니다.

이 상태는 Python을 호출 한 코드에서 사용할 수 있습니다. 이 규칙은 여러 플랫폼에 적용되지만 0이 아닌 종료 상태의 의미는 플랫폼마다 다를 수 있습니다.


7

exit()함수에 전달하는 숫자 는 단순히 운영 체제에 제공되는 프로그램의 리턴 코드입니다. 프로그램의 관점에서는 차이가 없습니다. 두 경우 모두에서 실행이 종료되고 함수에 제공된 값이 OS에 제공됩니다. 그러나 일부 도구 및 스크립트는 프로그램의 종료 코드를 고려합니다. 대부분의 도구는 성공하면 0을 반환하고 오류를 나타 내기 위해 0이 아닌 값을 반환합니다.

따라서 프로그램이 스크립트, 자동화 도구 또는 리턴 코드 (예 : IDE)를 고려한 다른 소프트웨어에서 실행되는 경우 리턴하는 내용에주의해야합니다.

확실하지 않은 경우 0을 반환하면 모든 것이 정상임을 나타냅니다.


6

exit(0): 프로그램이 성공적으로 종료되면 프로그램이 종료됩니다.

exit(1): 시스템 고유의 의미로 프로그램이 종료됩니다.

많은 시스템에서 exit(1)어떤 종류의 고장을 신호하지만 보장 할 수는 없습니다.

내가 기억 하듯이 C 표준은 세 가지 표준 종료 값만 인식합니다.

  • EXIT_SUCCESS -성공적인 종료
  • EXIT_FAILURE -실패한 종료
  • 0 -와 동일 EXIT_SUCCESS
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.