Contents

3 sätt att avsluta ett program i Python

Snabblänkar

⭐ Använda quit() eller exit()

⭐ Använda sys.exit()

⭐ Använda os._exit()

⭐ Vilken metod ska du använda för att avsluta ett program i Python?

Att avsluta en mjukvaruapplikation på ett skickligt sätt har betydelse i olika situationer. Som en illustration, med tanke på att man utformar ett elementärt videospel, är det möjligt att avsluta baserat på viss användarinmatning eller vid förverkligandet av en fördefinierad förutsättning. Fördjupa dig i skillnaderna mellan trion av metoder för att åstadkomma upphörandet av ett Python-skript.

Använda quit() eller exit()

Man kan avsluta ett Python-skript genom att använda en av dess inneboende funktioner, nämligen “quit()” eller “exit()”. När något av dessa kommandon används kommer programmet att sluta exekveras.

Både funktionerna quit() och exit() har identiska syften; att använda någon av dem är främst en fråga om individuellt val baserat på personlig läggning snarare än någon betydande skillnad i funktionalitet.

“För att avsluta ett Python-skript kan man använda funktionen quit().

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

Den medföljande koden itererar genom siffror från 0 till 8 och visar dem sekventiellt i konsolen. När programmet stöter på värdet 9 avslutas det. Dessutom kan man använda funktionen quit() för att avbryta exekveringen av Python Integrated Development and Learning Environment (IDLE). Denna plattform gör det möjligt för användare att köra Python-skript interaktivt, vilket ger en möjlighet till praktisk erfarenhet av programmering.

Det bör noteras att både quit() och exit() är beroende av funktionen i site modulen, och därför kanske inte är lämpliga för användning inom produktionsmiljöer. Istället anses den alternativa metoden som tillhandahålls av sys.exit() generellt vara mer lämplig i sådana sammanhang.

Använda sys.exit()

När funktionen sys.exit() används i ett Python-skript, skapas en instans av undantaget SystemExit . Detta undantag stöder en valfri parameter som bestämmer exitkoden, med ett standardvärde på 0. Dessutom tillåter det att ett objekt skickas, vilket vid exekvering kommer att ge en exitkod på 1 och visa objektets strängrepresentation på standardfelströmmen.

 import sys # Remember to include this statement at the top of the module

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

Programmets resulterande utdata skall bestå av följande format:

/sv/images/python-code-output-screenshot.jpg

På samma sätt som quit och exit i Pythons inbyggda sys modul, är sys.exit() metoden ännu ett sätt att avsluta ett Python-skript på ett elegant sätt. Precis som sina motsvarigheter, när den åberopas, utlöser den ett SystemExit undantag. Den anmärkningsvärda skillnaden här ligger i det faktum att anrop av antingen sys.exit() eller raise SystemExit() båda accepterar ett valfritt argument för att ge ytterligare information, om det behövs.

För att få en heltäckande förståelse av funktionerna i den medföljande koden rekommenderas att man bekantar sig med de grundläggande Python-funktioner som används i skriptet.

Använda os._exit()

Det tredje sättet att avsluta ett program är att använda den speciella os._exit() metoden, som låter dig ange en valfri parameter som anger en statuskod för avslutning. Denna metod finns i os modulen och avslutar omedelbart processen utan att utföra de vanliga rensningsuppgifterna som vanligtvis förknippas med avslutandet av ett Python-program.

Eftersom den här funktionen avslutas utan normal rensning bör du bara använda den i speciella fall. Enligt Python-dokumentationen är ett bra exempel i en barnprocess efter en fork (en ny process som skapas med hjälp av os.fork() ).

 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:
            # Code in the child process
            child_process()
        else:
            # Code in the parent process
            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()

Koden ovan ger följande resultat:

/sv/images/code-output-python.jpg

Vilken metod ska du använda för att avsluta ett program i Python?

Python erbjuder flera metoder för att avsluta ett program, även om många av dem i slutändan resulterar i att programmets körning avbryts. Dessa alternativ kan minska den kognitiva belastningen i samband med att välja en lämplig metod för att avsluta ett program när man utvecklar programvara i Python, särskilt under de första stadierna av inlärningen av språket.

Sammanfattningsvis rekommenderas att man använder funktionen sys.exit() när man avslutar ett Python-program, eftersom den effektivt genererar ett SystemExit undantag tillsammans med en valfri exitkod för sömlöst avslutande av programvarans drift.

Användningen av metoderna quit() och exit() rekommenderas när man interagerar med Python Read-Eval-Print Loop (REPL). Det avråds dock från att använda dessa metoder i en produktionsmiljö eftersom de är beroende av modulen site , vars tillgänglighet inte kan garanteras vid alla tidpunkter. Dessutom används metoden os._exit() sällan, förutom när det handlar om kod som skapar nya processer.