3 moduri de a încheia un program în Python

Navigare Rapidă

Capacitatea de a închide un program este esențială și se dovedește utilă în diverse situații. De exemplu, într-un joc simplu, poți ieși din program la o anumită acțiune a utilizatorului sau când o condiție specifică este îndeplinită. Vom explora diferențele dintre trei modalități de a opri execuția unui program Python.

1. Utilizarea quit() sau exit()

Una dintre cele mai simple abordări pentru a termina un program Python este folosirea funcțiilor predefinite quit() sau exit(). Când apelezi una dintre acestea, programul se oprește imediat.

Atât quit() cât și exit() execută aceeași funcție, alegerea dintre ele fiind pur o chestiune de preferință personală.

Iată un exemplu de utilizare a quit() pentru a termina un program Python:

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

Codul de mai sus va afișa numerele întregi de la 0 la 8. Când numar devine 9, programul va fi oprit. De asemenea, quit() poate fi folosit pentru a închide Python IDLE, permițându-ți să execuți scripturi Python interactiv.

Este important de reținut că quit() și exit() se bazează pe modulul site, deci nu sunt recomandate pentru utilizare în mediile de producție. sys.exit(), pe care o vom prezenta în continuare, este o alternativă mai sigură.

2. Utilizarea sys.exit()

Când apelezi sys.exit() în programul tău, Python generează o excepție SystemExit. Această funcție acceptă un argument opțional pentru a specifica un cod de ieșire (0 implicit). Poți, de asemenea, să transmiți un obiect, care va rezulta într-un cod de ieșire 1 și va imprima reprezentarea sa ca șir în fluxul de erori standard.

 import sys 

for numar in range(10):
if numar == 5:
sys.exit("Programul a fost închis")
print(numar)

Rezultatul execuției acestui program va fi următorul:

La fel ca quit() și exit(), sys.exit() ridică o excepție SystemExit. Asta înseamnă că poți fie să apelezi sys.exit(), fie să ridici manual SystemExit(). Ambele metode acceptă un argument opțional.

Este important să te familiarizezi cu cele mai importante funcții Python pentru a înțelege cum funcționează codul de mai sus.

3. Utilizarea os._exit()

O altă metodă de a închide un program este funcția specială os._exit(). Aceasta acceptă un argument opțional pentru a specifica un cod de stare la ieșire. os._exit(), care provine din modulul os, oprește procesul imediat, fără a executa operațiile normale de curățare care au loc în mod uzual la închiderea unui program Python.

Datorită faptului că această funcție iese fără a efectua curățarea uzuală, ar trebui să o folosești doar în situații speciale. Conform documentației Python, un exemplu bun este într-un proces copil după un fork (un proces nou creat cu ajutorul os.fork()).

Iată un exemplu despre cum poți folosi os._exit() pentru a termina un program:

 import os
import sys

def proces_copil():
print("Procesul copil este în execuție.")
os._exit(0)

def main():
print("Procesul părinte este în execuție.")

try:
pid = os.fork()

if pid == 0:

proces_copil()
else:

print(f"Procesul părinte continuă cu PID-ul procesului copil: {pid}")
except OSError as e:
print(f"Fork eșuat: {e}")
sys.exit(1)

print("Procesul părinte s-a încheiat.")

if __name__ == "__main__":
main()

Acest cod va produce următorul rezultat:

Care metodă ar trebui să folosești pentru a închide un program Python?

Python oferă mai multe metode pentru a termina un program, dar majoritatea execută același lucru. Acest lucru simplifică decizia de a implementa un mecanism de ieșire în programul tău, mai ales la început.

În concluzie, sys.exit() este considerată metoda standard pentru a închide un program Python. Aceasta ridică o excepție SystemExit și poate fi furnizat un cod de ieșire opțional.

Funcțiile quit() și exit() sunt mai potrivite pentru sesiunile Python REPL. Ar trebui să eviți folosirea lor în codul de producție, deoarece acestea depind de modulul site, care ar putea să nu fie disponibil în orice mediu. Folosirea lui os._exit() ar trebui să fie rară, fiind recomandată doar în cazurile în care lucrezi cu cod care generează procese folosind fork.