Właśnie zdałem sobie sprawę, że jest to, exit(0)co jest omówione w tym pytaniu, a także jedno z podkreśleniem _exit(0), różnica jest wyjaśniona tutaj
kardamon
Zaletą tych kodów jest to, że można ich używać bezpośrednio w ifinstrukcji w bashopakowaniu, dzięki czemu można podjąć dalsze działania bez względu na to, czy program w Pythonie się powiedzie, czy też zgłosił niezerowy stan.
SDsolar
dziwne, jeśli 0 to fałsz, a 1 to prawda w Pythonie, można by pomyśleć, że liczby oznaczałyby
coś
Odpowiedzi:
248
0 i 1 to kody wyjścia.
exit(0) oznacza czyste wyjście bez żadnych błędów / problemów
exit(1) oznacza, że wystąpił jakiś problem / błąd / problem i dlatego program kończy pracę.
Nie jest to specyficzne dla Pythona i jest dość powszechne. Niezerowy kod zakończenia jest traktowany jako nieprawidłowe wyjście, a czasami kod błędu wskazuje, na czym polegał problem. Zerowy kod błędu oznacza pomyślne zakończenie.
Jest to przydatne dla innych programów, powłoki, wywołującego itp., Aby wiedzieć, co się stało z twoim programem i postępować zgodnie z tym.
@Faizan: Kod zakończenia to 8-bitowa wartość w systemie Unix. Jeśli wywołasz exit(-1), wartość jest równoważna exit(255)- 8 najmniej znaczących bitów jest przekazywanych do programu wywołującego (powłoka lub cokolwiek).
Jonathan Leffler
4
Zauważ, że zgodnie z dokumentacją , exit()jest dodawany przez sitemoduł i nie powinien być używany przez programy. Zamiast tego użyj sys.exit()lub nawet raise SystemExit, jeśli nie chcesz importować innego modułu.
daviewales
2
Z powodu kodów wyjścia z systemu Unix / Linux myślałem, że 0 to prawda, a 1 to fałsz w warunkach Pythona.
vlyalcin
19
Określa to status wyjścia programu po zakończeniu jego działania (zwykle 0 dla sukcesu i 1 dla błędu).
Nie jest to unikalne dla Pythona, a dokładny efekt zależy od systemu operacyjnego i sposobu wywołania programu (choć 99% czasu, jeśli uruchamiasz tylko skrypty Pythona, nie ma to znaczenia).
Standardowa konwencja dla wszystkich programów C, w tym Pythona, mówi o exit(0)sukcesie i / exit(1)lub dowolnej innej wartości niezerowej (w zakresie 1..255), aby wskazać błąd. Każda wartość spoza zakresu 0..255 jest traktowana jako modulo 256 (kod wyjścia jest zapisywany w wartości 8-bitowej). Czasami będzie to traktowane jako podpisane (więc możesz zobaczyć -128, -127 itd.), Ale częściej jest traktowane jako niepodpisane.
Ten status jest dostępny dla kodu, który wywołał Pythona. Ta konwencja ma zastosowanie na różnych platformach, chociaż znaczenie niezerowego statusu wyjścia może się różnić na różnych platformach.
Liczba, którą przekazujesz do exit()funkcji, to po prostu kod powrotu programu, który jest przekazywany do systemu operacyjnego. Z punktu widzenia twojego programu nie ma różnicy: wykonanie zakończy się w obu przypadkach, a wartość dostarczona do funkcji zostanie przekazana do systemu operacyjnego. Jednak niektóre narzędzia i skrypty uwzględniają kod zakończenia programu. Większość narzędzi zwraca 0, gdy im się powiedzie, i niezerową, aby wskazać błąd.
Tak więc, jeśli Twój program będzie uruchamiany ze skryptu, zautomatyzowanego narzędzia lub z innego oprogramowania, które bierze pod uwagę kod powrotu (na przykład IDE), musisz uważać na to, co zwracasz.
W razie wątpliwości po prostu zwróć 0, aby wskazać, że wszystko jest w porządku.
exit()
w dokumentacji , której znalezienie zajęło mi wieczność.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
zamiast tego użyjsys.exit()
exit(0)
co jest omówione w tym pytaniu, a także jedno z podkreśleniem_exit(0)
, różnica jest wyjaśniona tutajif
instrukcji wbash
opakowaniu, dzięki czemu można podjąć dalsze działania bez względu na to, czy program w Pythonie się powiedzie, czy też zgłosił niezerowy stan.Odpowiedzi:
0 i 1 to kody wyjścia.
exit(0)
oznacza czyste wyjście bez żadnych błędów / problemówexit(1)
oznacza, że wystąpił jakiś problem / błąd / problem i dlatego program kończy pracę.Nie jest to specyficzne dla Pythona i jest dość powszechne. Niezerowy kod zakończenia jest traktowany jako nieprawidłowe wyjście, a czasami kod błędu wskazuje, na czym polegał problem. Zerowy kod błędu oznacza pomyślne zakończenie.
Jest to przydatne dla innych programów, powłoki, wywołującego itp., Aby wiedzieć, co się stało z twoim programem i postępować zgodnie z tym.
źródło
exit(-1)
, wartość jest równoważnaexit(255)
- 8 najmniej znaczących bitów jest przekazywanych do programu wywołującego (powłoka lub cokolwiek).exit()
jest dodawany przezsite
moduł i nie powinien być używany przez programy. Zamiast tego użyjsys.exit()
lub nawetraise SystemExit
, jeśli nie chcesz importować innego modułu.Określa to status wyjścia programu po zakończeniu jego działania (zwykle 0 dla sukcesu i 1 dla błędu).
Nie jest to unikalne dla Pythona, a dokładny efekt zależy od systemu operacyjnego i sposobu wywołania programu (choć 99% czasu, jeśli uruchamiasz tylko skrypty Pythona, nie ma to znaczenia).
źródło
Standardowa konwencja dla wszystkich programów C, w tym Pythona, mówi o
exit(0)
sukcesie i /exit(1)
lub dowolnej innej wartości niezerowej (w zakresie 1..255), aby wskazać błąd. Każda wartość spoza zakresu 0..255 jest traktowana jako modulo 256 (kod wyjścia jest zapisywany w wartości 8-bitowej). Czasami będzie to traktowane jako podpisane (więc możesz zobaczyć -128, -127 itd.), Ale częściej jest traktowane jako niepodpisane.Ten status jest dostępny dla kodu, który wywołał Pythona. Ta konwencja ma zastosowanie na różnych platformach, chociaż znaczenie niezerowego statusu wyjścia może się różnić na różnych platformach.
źródło
Liczba, którą przekazujesz do
exit()
funkcji, to po prostu kod powrotu programu, który jest przekazywany do systemu operacyjnego. Z punktu widzenia twojego programu nie ma różnicy: wykonanie zakończy się w obu przypadkach, a wartość dostarczona do funkcji zostanie przekazana do systemu operacyjnego. Jednak niektóre narzędzia i skrypty uwzględniają kod zakończenia programu. Większość narzędzi zwraca 0, gdy im się powiedzie, i niezerową, aby wskazać błąd.Tak więc, jeśli Twój program będzie uruchamiany ze skryptu, zautomatyzowanego narzędzia lub z innego oprogramowania, które bierze pod uwagę kod powrotu (na przykład IDE), musisz uważać na to, co zwracasz.
W razie wątpliwości po prostu zwróć 0, aby wskazać, że wszystko jest w porządku.
źródło
exit(0)
: Powoduje to zakończenie programu po pomyślnym zakończeniu.exit(1)
: Powoduje to zamknięcie programu w znaczeniu specyficznym dla systemu.W wielu systemach
exit(1)
sygnalizuje jakąś awarię, jednak nie ma gwarancji.O ile pamiętam, standard C rozpoznaje tylko trzy standardowe wartości wyjścia:
EXIT_SUCCESS
- pomyślne zakończenieEXIT_FAILURE
- niepomyślne zakończenie0
-- taki sam jakEXIT_SUCCESS
źródło