3 sposoby na zakończenie programu w Pythonie

Szybkie linki

Wiedza o tym, jak zakończyć program, jest ważna i może być przydatna w różnych scenariuszach. Na przykład, jeśli tworzysz prostą grę, możesz ją zakończyć po wprowadzeniu danych przez użytkownika lub po spełnieniu określonego warunku. Odkryj różnice między trzema sposobami zatrzymywania programu w języku Python.

1. Używanie funkcji exit() lub exit()

Jednym z najprostszych sposobów zakończenia programu w Pythonie jest użycie jednej z wbudowanych metod: Quit() lub exit(). Gdy wywołasz funkcję Quit() lub exit(), program zakończy działanie.

Funkcje Quit() i exit() robią dokładnie to samo, jest to tylko kwestia osobistych preferencji, których używasz.

Oto jak możesz użyć funkcji Quit() do zakończenia programu w Pythonie:

 for num in range(10):
    if num == 9:
        quit()
    print(num)

Przykładowy program powyżej wyświetli na konsoli liczby całkowite od 0 do 8. Gdy liczba wynosi 9, program kończy działanie. Komendy Quit() można także użyć do wyjścia ze zintegrowanego środowiska programistycznego i edukacyjnego języka Python (IDLE), które umożliwia interaktywne uruchamianie skryptów w języku Python.

Należy pamiętać, że zarówno funkcja Quit(), jak i exit() opierają się na module witryny, więc nie należy ich używać w środowiskach produkcyjnych. Następna metoda, sys.exit(), jest lepszą opcją.

2. Korzystanie z sys.exit()

Kiedy wywołujesz sys.exit() w swoim programie, Python zgłasza wyjątek SystemExit. Akceptuje opcjonalny argument określający całkowity kod zakończenia (domyślnie 0). Możesz także przekazać obiekt, co spowoduje wygenerowanie kodu wyjścia o wartości 1 i wydrukowanie wartości ciągu obiektu ze standardowym błędem.

 import sys 

for num in range(10):
    if num == 5:
        sys.exit("You exited the program")
    print(num)

Dane wyjściowe programu będą następujące:

Podobnie jak metody exit i exit, sys.exit() również zgłasza wyjątek SystemExit. Oznacza to, że możesz wywołać sys.exit() lub wywołać SystemExit(). Obydwa akceptują opcjonalny argument.

Powinieneś poznać najważniejsze funkcje Pythona, jeśli nie rozumiesz, jak działa powyższy kod.

3. Korzystanie z os._exit()

Trzecim sposobem wyjścia z programu jest specjalna metoda os._exit(). Możesz przekazać mu opcjonalny argument, aby określić kod statusu wyjścia. os._exit() pochodzi z modułu os i natychmiast kończy proces, bez wykonywania normalnych czynności czyszczących, które mają miejsce po zamknięciu programu w języku Python.

Ponieważ ta funkcja kończy działanie bez wykonania normalnego czyszczenia, należy jej używać tylko w specjalnych przypadkach. Według Dokumentacja Pythonadobrym przykładem jest proces potomny po rozwidleniu (nowy proces utworzony za pomocą os.fork()).

Oto przykład użycia funkcji os._exit() do zakończenia programu:

 import os
import sys

def child_process():
    print("Child process is running.")
    os._exit(0)

def main():
    print("Parent process is running.")

    try:
        pid = os.fork()

        if pid == 0:
            
            child_process()
        else:
            
            print(f"Parent process is continuing with child process PID: {pid}")
    except OSError as e:
        print(f"Fork failed: {e}")
        sys.exit(1)

    print("Parent process is done.")

if __name__ == "__main__":
    main()

Powyższy kod wyświetli następujące informacje:

Jakiej metody należy użyć do zakończenia programu w Pythonie?

Python udostępnia różne metody zakończenia programu. Jednak większość z tych metod robi to samo. Powinno to zmniejszyć obciążenie związane z podejmowaniem decyzji, jeśli chcesz dodać mechanizm wyjścia do swojego programu podczas nauki języka Python.

Podsumowując, sys.exit() powinna być Twoją podstawową metodą kończenia programu w Pythonie. Zgłasza wyjątek SystemExit z opcjonalnym kodem zakończenia.

Metody Quit() i exit() są bardziej odpowiednie w przypadku korzystania z funkcji REPL w języku Python. Należy ich unikać na produkcji, ponieważ zależą one od modułu witryny, który nie zawsze może być dostępny. Rzadko powinieneś używać os._exit(), chyba że pracujesz z kodem, który rozwidla procesy.