3 วิธีในการจบโปรแกรมใน Python
ลิงค์ด่วน
⭐ใช้คำสั่ง exit() หรือ exit()
⭐ใช้ sys.exit()
⭐ใช้ os._exit()
⭐ คุณควรใช้วิธีใดในการยุติโปรแกรมใน Python
การยกเลิกแอปพลิเคชันซอฟต์แวร์อย่างเชี่ยวชาญมีความสำคัญในสถานการณ์ที่หลากหลาย ตามภาพประกอบ เมื่อพิจารณาว่าใครกำลังสร้างวิดีโอเกมระดับประถมศึกษา ก็เป็นไปได้ที่จะออกตามข้อมูลของผู้ใช้เฉพาะหรือเมื่อบรรลุข้อกำหนดเบื้องต้นที่กำหนดไว้ล่วงหน้า เจาะลึกถึงความแตกต่างระหว่างสามวิธีในการทำให้สคริปต์ Python หยุดทำงาน
ใช้ exit() หรือ exit()
อาจสรุปสคริปต์ Python โดยใช้ฟังก์ชันที่มีอยู่อย่างใดอย่างหนึ่ง นั่นคือ “quit()” หรือ “exit()” เมื่อเรียกใช้คำสั่งใดคำสั่งหนึ่งเหล่านี้ โปรแกรมจะหยุดการทำงาน
ทั้งฟังก์ชัน Quit()
และ exit()
มีจุดประสงค์ที่เหมือนกัน การใช้อย่างใดอย่างหนึ่งเป็นเรื่องของการเลือกของแต่ละบุคคลโดยพิจารณาจากความชอบส่วนตัวมากกว่าความแตกต่างที่มีนัยสำคัญในการทำงาน
“เพื่อที่จะยุติสคริปต์ Python เราสามารถใช้ฟังก์ชัน exit() ได้
for num in range(10):
if num == 9:
quit()
print(num)
รหัสที่ให้มาจะวนซ้ำตัวเลขตั้งแต่ 0 ถึง 8 โดยแสดงตามลำดับในคอนโซล เมื่อพบค่า 9 โปรแกรมจะหยุดการทำงาน นอกจากนี้ เราอาจใช้ฟังก์ชัน quit()
เพื่อหยุดการดำเนินการของ Python Integrated Development and Learning Environment (IDLE) แพลตฟอร์มนี้ทำให้ผู้ใช้สามารถรันสคริปต์ Python แบบโต้ตอบได้ โดยมอบโอกาสสำหรับประสบการณ์การเขียนโปรแกรมแบบลงมือปฏิบัติจริง
ควรสังเกตว่าทั้ง Quit()
และ Exit()
ขึ้นอยู่กับการทำงานของโมดูล site
และดังนั้นจึงอาจไม่เหมาะสำหรับใช้ภายในสภาพแวดล้อมการใช้งานจริง แต่แนวทางอื่นที่จัดทำโดย sys.exit()
โดยทั่วไปถือว่ามีความเหมาะสมมากกว่าในบริบทดังกล่าว
การใช้ sys.exit()
เมื่อใช้ฟังก์ชัน sys.exit()
ภายในสคริปต์ Python อินสแตนซ์ของข้อยกเว้น SystemExit
จะเกิดขึ้น ข้อยกเว้นนี้สนับสนุนพารามิเตอร์ทางเลือกที่กำหนดโค้ดทางออก โดยมีค่าเริ่มต้นเป็น 0 นอกจากนี้ ยังอนุญาตให้ส่งผ่านออบเจ็กต์ ซึ่งเมื่อดำเนินการแล้ว จะให้ผลลัพธ์โค้ดทางออกเป็น 1 และแสดงการแสดงสตริงของออบเจ็กต์ตามมาตรฐาน กระแสข้อผิดพลาด
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)
ผลลัพธ์ของโปรแกรมต้องประกอบด้วยรูปแบบดังต่อไปนี้
เช่นเดียวกับฟังก์ชันการทำงานที่มีให้โดยเมธอด Quit
และ Exit
ในโมดูล sys
ในตัวของ Python เมธอด sys.exit()
ก็เป็นอีกวิธีหนึ่งในการยุติสคริปต์ Python อย่างสวยงาม เช่นเดียวกับคู่อื่นๆ เมื่อเรียกใช้ จะทริกเกอร์การเพิ่มข้อยกเว้น SystemExit
ความแตกต่างที่เห็นได้ชัดเจนในที่นี้ก็คือการเรียก sys.exit()
หรือ Raise SystemExit()
ทั้งสองจะยอมรับอาร์กิวเมนต์ที่เป็นทางเลือกเพื่อให้ข้อมูลเพิ่มเติม หากจำเป็น
เพื่อให้เข้าใจอย่างครอบคลุมเกี่ยวกับการทำงานของโค้ดที่ให้มา ขอแนะนำให้ทำความคุ้นเคยกับฟังก์ชันพื้นฐานของ Python ที่ใช้ในสคริปต์
การใช้ os._exit()
แนวทางที่สามสำหรับการออกจากโปรแกรมเกี่ยวข้องกับการใช้เมธอดพิเศษ os.\_exit()
ซึ่งช่วยให้คุณสามารถระบุพารามิเตอร์ทางเลือกที่ระบุรหัสสถานะการออก วิธีการนี้อยู่ภายในโมดูล os
และยุติกระบวนการทันทีโดยไม่ต้องดำเนินการงานล้างข้อมูลตามธรรมเนียมซึ่งโดยทั่วไปจะเกี่ยวข้องกับการยุติโปรแกรม Python
เนื่องจากฟังก์ชันนี้ออกโดยไม่ทำการล้างข้อมูลตามปกติ คุณควรใช้เฉพาะในกรณีพิเศษเท่านั้น ตามเอกสารของ thePython ตัวอย่างที่ดีอยู่ในกระบวนการลูกหลังจากทางแยก (กระบวนการใหม่ที่สร้างขึ้นโดยใช้ 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()
รหัสด้านบนจะแสดงผลดังต่อไปนี้:
คุณควรใช้วิธีใดในการยุติโปรแกรมใน Python?
Python เสนอวิธีการยุติโปรแกรมหลายวิธี แม้ว่าหลายวิธีจะส่งผลให้โปรแกรมหยุดทำงานในที่สุด ทางเลือกเหล่านี้อาจช่วยลดภาระการรับรู้ที่เกี่ยวข้องกับการเลือกวิธีการที่เหมาะสมสำหรับการจบโปรแกรมในขณะที่พัฒนาซอฟต์แวร์ใน Python โดยเฉพาะในช่วงเริ่มต้นของการเรียนรู้ภาษา
โดยสรุป เมื่อยุติโปรแกรม Python ขอแนะนำให้ใช้ฟังก์ชัน sys.exit()
เนื่องจากสร้างข้อยกเว้น SystemExit
ได้อย่างมีประสิทธิภาพ พร้อมด้วยโค้ดทางออกเพิ่มเติมเพื่อการหยุดการทำงานของซอฟต์แวร์อย่างราบรื่น
แนะนำให้ใช้เมธอด Quit()
และ exit()
ในขณะที่โต้ตอบกับ Python Read-Eval-Print Loop (REPL) อย่างไรก็ตาม ไม่แนะนำให้ใช้วิธีการเหล่านี้ภายในสภาพแวดล้อมการใช้งานจริง เนื่องจากต้องใช้โมดูล ไซต์
ซึ่งไม่สามารถรับประกันความพร้อมใช้งานได้ตลอดเวลา นอกจากนี้ การใช้เมธอด os.\_exit()
เป็นแนวทางปฏิบัติที่ไม่บ่อยนัก ยกเว้นเมื่อต้องจัดการกับโค้ดที่สร้างกระบวนการใหม่