3 cách kết thúc chương trình trong Python

Biết cách kết thúc chương trình là điều quan trọng và có thể hữu ích trong nhiều tình huống khác nhau. Ví dụ, nếu đang tạo một game đơn giản, bạn có thể thoát khi người dùng cụ thể nhập vào hoặc khi đáp ứng một điều kiện nhất định. Hãy cùng khám phá sự khác biệt giữa 3 cách dừng chương trình Python qua bài viết sau đây!

1. Sử dụng quit() hoặc exit()

Một trong những cách đơn giản nhất để kết thúc chương trình Python là sử dụng một trong các phương thức có sẵn, quit() hoặc exit(). Khi bạn gọi quit() hoặc exit(), chương trình sẽ chấm dứt.

Lưu ý: Các hàm quit() và exit() thực hiện những điều tương tự, vì vạy việc lựa chọn công cụ nào chỉ là vấn đề sở thích cá nhân.

Đây là cách bạn có thể sử dụng hàm quit() để kết thúc chương trình Python:

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

Chương trình mẫu ở trên sẽ in các số nguyên từ 0 đến 8 trên console. Khi số là 9, chương trình sẽ thoát. Bạn cũng có thể sử dụng lệnh quit() để thoát khỏi Python Integrated Development and Learning Environment (IDLE), cho phép bạn chạy các tập lệnh Python một cách tương tác.

Lưu ý rằng cả quit() và exit() đều dựa vào mô-đun trang web, do đó bạn không nên sử dụng chúng trong môi trường sản xuất. Phương thức tiếp theo, sys.exit(), là một lựa chọn tốt hơn.

2. Sử dụng sys.exit()

Khi bạn gọi sys.exit() trong chương trình của mình, Python sẽ đưa ra một ngoại lệ SystemExit. Nó chấp nhận một đối số tùy chọn để chỉ định exit code số nguyên (0 theo mặc định). Bạn cũng có thể truyền một đối tượng sẽ dẫn đến exit code là 1 và sẽ in giá trị chuỗi của đối tượng thành lỗi tiêu chuẩn.

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)

Đầu ra của chương trình sẽ như sau:

Đầu ra code Python

Lưu ý: Giống như các phương thức quitexit, sys.exit() cũng đưa ra một ngoại lệ SystemExit. Điều này có nghĩa là bạn có thể gọi sys.exit() hoặc raise SystemExit(). Cả hai đều chấp nhận một đối số tùy chọn.

Bạn nên tìm hiểu về các hàm Python quan trọng nhất nếu bạn không hiểu cách hoạt động của đoạn code trên.

3. Sử dụng os._exit()

Cách thứ ba để thoát khỏi chương trình là sử dụng phương thức os._exit() đặc biệt. Bạn có thể truyền cho nó một đối số tùy chọn để chỉ định mã trạng thái thoát. os._exit() xuất phát từ mô-đun os và kết thúc quá trình ngay lập tức mà không thực hiện các hoạt động dọn dẹp thông thường xảy ra khi chương trình Python thoát.

Vì hàm này thoát ra mà không thực hiện dọn dẹp thông thường nên bạn chỉ nên sử dụng nó trong những trường hợp đặc biệt. Theo tài liệu Python, một ví dụ điển hình là tiến trình con sau phân nhánh (một tiến trình mới được tạo bằng os.fork()).

Sau đây là ví dụ về cách sử dụng hàm os._exit() để kết thúc chương trình:

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

Đoạn code trên sẽ xuất ra như sau:

Đầu ra code Python

Nên sử dụng phương pháp nào để chấm dứt chương trình trong Python?

Python cung cấp nhiều phương thức khác nhau để kết thúc chương trình. Tuy nhiên, hầu hết các phương pháp này đều làm điều tương tự. Điều này sẽ giảm bớt gánh nặng trong việc ra quyết định nếu bạn cần thêm cơ chế thoát khỏi chương trình của mình khi học Python.

Tóm lại, sys.exit() sẽ là phương pháp bạn nên sử dụng để kết thúc chương trình bằng Python. Nó đưa ra một ngoại lệ SystemExit với exit code tùy chọn.

Các phương thức quit()exit() phù hợp hơn khi sử dụng REPL của Python. Bạn nên tránh chúng trong quá trình sản xuất vì chúng phụ thuộc vào mô-đun trang web và không phải lúc nào cũng có sẵn. Bạn hiếm khi cần sử dụng os._exit(), trừ khi bạn đang làm việc với code phân nhánh tiến trình.

Thứ Năm, 11/01/2024 10:16
51 👨 1.084
0 Bình luận
Sắp xếp theo
    ❖ Học Python