3 måder at afslutte et program i Python

hurtige links

At vide, hvordan man afslutter et program er vigtigt og kan være praktisk i forskellige scenarier. For eksempel, hvis du laver et simpelt spil, kan du afslutte på specifik brugerinput, eller når en bestemt betingelse er opfyldt. Opdag forskellene mellem de tre måder at stoppe et Python-program på.

1. Brug af quit() eller exit()

En af de enkleste måder at afslutte et Python-program på er at bruge en af ​​de indbyggede metoder, quit() eller exit(). Når du kalder enten quit() eller exit(), afsluttes programmet.

Funktionerne quit() og exit() gør nøjagtig det samme, det er kun et spørgsmål om personlig præference, hvilken du bruger.

  Ret fejlen 'Din betalingsmetode blev afvist' i App Store

Sådan kan du bruge quit()-funktionen til at afslutte et Python-program:

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

Eksempelprogrammet ovenfor vil udskrive heltal fra 0 til 8 på konsollen. Når num er 9, afsluttes programmet. Du kan også bruge kommandoen quit() til at afslutte Python Integrated Development and Learning Environment (IDLE), som giver dig mulighed for at køre Python-scripts interaktivt.

Bemærk, at både quit() og exit() er afhængige af site-modulet, så du bør ikke bruge dem i produktionsmiljøer. Den næste metode, sys.exit(), er en bedre mulighed.

2. Brug af sys.exit()

Når du kalder sys.exit() i dit program, rejser Python en SystemExit-undtagelse. Den accepterer et valgfrit argument for at specificere en heltal exit-kode (0 som standard). Du kan også sende et objekt, hvilket vil resultere i en udgangskode på 1 og vil udskrive objektets strengværdi til standardfejl.

 import sys 

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

Resultatet af programmet vil være som følger:

  Få en advarsel, når AirPods er på lager i din nærmeste Apple Store

Ligesom quit- og exit-metoderne rejser sys.exit() også en SystemExit-undtagelse. Det betyder, at du kan kalde sys.exit() eller hæve SystemExit(). Begge accepterer et valgfrit argument.

Du bør lære om de vigtigste Python-funktioner, hvis du ikke forstår, hvordan koden ovenfor fungerer.

3. Brug af os._exit()

Den tredje måde at afslutte et program på er den specielle os._exit() metode. Du kan give det et valgfrit argument for at angive en udgangsstatuskode. os._exit() kommer fra os-modulet og afslutter processen med det samme uden at udføre de normale oprydningsaktiviteter, der opstår, når et Python-program afsluttes.

Fordi denne funktion afsluttes uden at udføre normal oprydning, bør du kun bruge den i særlige tilfælde. Ifølge Python dokumentationet godt eksempel er i en underordnet proces efter en gaffel (en ny proces oprettet ved hjælp af os.fork()).

Her er et eksempel på, hvordan man bruger os._exit()-funktionen til at afslutte et program:

 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()

Ovenstående kode udsender følgende:

  Icecream Image Resizer er et værktøj til billedændring af størrelse med forudindstillede størrelser

Hvilken metode skal du bruge til at afslutte et program i Python?

Python giver forskellige metoder til at afslutte et program. Men de fleste af disse metoder gør det samme. Dette burde reducere byrden for beslutningstagning, hvis du skal tilføje en exit-mekanisme til dit program, når du lærer Python.

Sammenfattende bør sys.exit() være din go-to-metode til at afslutte et program i Python. Det rejser en SystemExit-undtagelse med en valgfri exit-kode.

quit() og exit() metoderne er mere passende, når du bruger Python REPL. Du bør undgå dem i produktionen, fordi de afhænger af sitemodulet, som måske ikke altid er tilgængeligt. Du skal sjældent bruge os._exit(), medmindre du arbejder med kode, der splitter processer.