Πίνακας περιεχομένων
Γρήγοροι Σύνδεσμοι
Το να γνωρίζετε πώς να τερματίσετε ένα πρόγραμμα είναι σημαντικό και μπορεί να είναι χρήσιμο σε διάφορα σενάρια. Για παράδειγμα, εάν δημιουργείτε ένα απλό παιχνίδι, μπορείτε να τερματίσετε την είσοδο με συγκεκριμένο χρήστη ή όταν πληρούται μια συγκεκριμένη προϋπόθεση. Ανακαλύψτε τις διαφορές μεταξύ των τριών τρόπων διακοπής ενός προγράμματος Python.
1. Χρήση quit() ή exit()
Ένας από τους απλούστερους τρόπους τερματισμού ενός προγράμματος Python είναι να χρησιμοποιήσετε οποιαδήποτε από τις ενσωματωμένες μεθόδους, quit() ή exit(). Όταν καλείτε είτε quit() είτε exit(), το πρόγραμμα θα τερματιστεί.
Οι συναρτήσεις quit() και exit() κάνουν ακριβώς το ίδιο πράγμα, είναι απλώς θέμα προσωπικής προτίμησης που χρησιμοποιείτε.
Δείτε πώς μπορείτε να χρησιμοποιήσετε τη συνάρτηση quit() για να τερματίσετε ένα πρόγραμμα Python:
for num in range(10):
if num == 9:
quit()
print(num)
Το παραπάνω δείγμα προγράμματος θα εκτυπώσει ακέραιους αριθμούς από το 0 έως το 8 στην κονσόλα. Μόλις ο αριθμός είναι 9, το πρόγραμμα κλείνει. Μπορείτε επίσης να χρησιμοποιήσετε την εντολή quit() για έξοδο από το Ενσωματωμένο περιβάλλον ανάπτυξης και μάθησης της Python (IDLE), το οποίο σας επιτρέπει να εκτελείτε διαδραστικά σενάρια Python.
Σημειώστε ότι τόσο το quit() όσο και το exit() βασίζονται στη λειτουργική μονάδα τοποθεσίας, επομένως δεν πρέπει να τα χρησιμοποιείτε σε περιβάλλοντα παραγωγής. Η επόμενη μέθοδος, sys.exit(), είναι καλύτερη επιλογή.
2. Χρησιμοποιώντας sys.exit()
Όταν καλείτε sys.exit() στο πρόγραμμά σας, η Python δημιουργεί μια εξαίρεση SystemExit. Δέχεται ένα προαιρετικό όρισμα για τον καθορισμό ενός ακέραιου κωδικού εξόδου (0 από προεπιλογή). Μπορείτε επίσης να περάσετε ένα αντικείμενο που θα οδηγήσει σε έναν κωδικό εξόδου 1 και θα εκτυπώσει την τιμή συμβολοσειράς του αντικειμένου σε τυπικό σφάλμα.
import sysfor num in range(10):
if num == 5:
sys.exit("You exited the program")
print(num)
Η έξοδος του προγράμματος θα είναι η εξής:
Όπως οι μέθοδοι τερματισμού και εξόδου, η sys.exit() δημιουργεί επίσης μια εξαίρεση SystemExit. Αυτό σημαίνει ότι μπορείτε να καλέσετε τη sys.exit() ή να αυξήσετε την SystemExit(). Και οι δύο δέχονται ένα προαιρετικό επιχείρημα.
Θα πρέπει να μάθετε για τις πιο σημαντικές συναρτήσεις της Python εάν δεν καταλαβαίνετε πώς λειτουργεί ο παραπάνω κώδικας.
3. Χρησιμοποιώντας το os._exit()
Ο τρίτος τρόπος εξόδου από ένα πρόγραμμα είναι η ειδική μέθοδος os._exit(). Μπορείτε να το μεταβιβάσετε ως προαιρετικό όρισμα για να καθορίσετε έναν κωδικό κατάστασης εξόδου. Η os._exit() προέρχεται από τη λειτουργική μονάδα os και τερματίζει τη διαδικασία αμέσως χωρίς να εκτελεί τις κανονικές δραστηριότητες καθαρισμού που προκύπτουν κατά την έξοδο ενός προγράμματος Python.
Επειδή αυτή η λειτουργία εξέρχεται χωρίς να πραγματοποιηθεί κανονικός καθαρισμός, θα πρέπει να τη χρησιμοποιείτε μόνο σε ειδικές περιπτώσεις. Σύμφωνα με την Τεκμηρίωση Pythonένα καλό παράδειγμα είναι σε μια θυγατρική διαδικασία μετά από μια διχάλα (μια νέα διεργασία που δημιουργήθηκε χρησιμοποιώντας το os.fork()).
Ακολουθεί ένα παράδειγμα του τρόπου χρήσης της συνάρτησης os._exit() για τον τερματισμό ενός προγράμματος:
import os
import sysdef 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()
Ο παραπάνω κώδικας θα δώσει τα εξής:
Ποια μέθοδος πρέπει να χρησιμοποιήσετε για να τερματίσετε ένα πρόγραμμα στην Python;
Η Python παρέχει διάφορες μεθόδους για τον τερματισμό ενός προγράμματος. Ωστόσο, οι περισσότερες από αυτές τις μεθόδους κάνουν το ίδιο πράγμα. Αυτό θα μειώσει το βάρος της λήψης αποφάσεων εάν χρειάζεται να προσθέσετε έναν μηχανισμό εξόδου στο πρόγραμμά σας όταν μαθαίνετε Python.
Συνοπτικά, η sys.exit() θα πρέπει να είναι η μέθοδος που χρησιμοποιείτε για τον τερματισμό ενός προγράμματος στην Python. Δημιουργεί μια εξαίρεση SystemExit με έναν προαιρετικό κωδικό εξόδου.
Οι μέθοδοι quit() και exit() είναι πιο κατάλληλες όταν χρησιμοποιείτε το Python REPL. Θα πρέπει να τα αποφύγετε στην παραγωγή επειδή εξαρτώνται από τη μονάδα τοποθεσίας, η οποία μπορεί να μην είναι πάντα διαθέσιμη. Θα πρέπει σπάνια να χρειαστεί να χρησιμοποιήσετε το os._exit(), εκτός και αν εργάζεστε με κώδικα που διαχωρίζει διεργασίες.