Baru menyadari ada exit(0)yang dibahas dalam pertanyaan ini dan juga satu dengan garis bawah _exit(0), perbedaannya dijelaskan di sini
cardamom
Yang menyenangkan tentang kode-kode ini adalah bahwa mereka dapat digunakan secara langsung dalam ifpernyataan dalam bashpembungkus, sehingga tindakan lebih lanjut dapat diambil apakah program Python berhasil atau tidak atau meningkatkan status tidak nol.
SDsolar
aneh, jika 0 salah dan 1 benar dalam Python, Anda akan berpikir angka akan berarti sebaliknya
Monica Heddneck
Jawaban:
248
0 dan 1 adalah kode keluar.
exit(0) berarti keluar bersih tanpa kesalahan / masalah
exit(1) berarti ada beberapa masalah / kesalahan / masalah dan itulah sebabnya program keluar.
Ini bukan Python spesifik dan sangat umum. Kode keluar yang tidak nol diperlakukan sebagai keluar yang tidak normal, dan kadang-kadang, kode kesalahan menunjukkan apa masalahnya. Kode kesalahan nol berarti jalan keluar yang berhasil.
Ini berguna untuk program lain, shell, pemanggil, dll. Untuk mengetahui apa yang terjadi dengan program Anda dan melanjutkannya.
@ Fanzan: Kode keluar adalah nilai 8-bit pada Unix. Jika Anda memohon exit(-1), nilainya setara dengan exit(255)- 8 bit paling signifikan diteruskan ke program panggilan (shell atau apa pun).
Jonathan Leffler
4
Perhatikan bahwa menurut dokumen , exit()ditambahkan oleh sitemodul, dan tidak boleh digunakan oleh program. Sebaliknya, gunakan sys.exit(), atau bahkan raise SystemExit, jika Anda tidak ingin mengimpor modul lain.
daviewales
2
Karena kode keluar dari Unix / Linux, saya berpikir 0 adalah Benar dan 1 adalah nilai Salah dalam kondisi Python.
vlyalcin
19
Ini menentukan status keluar dari program ketika selesai berjalan (umumnya, 0 untuk keberhasilan dan 1 untuk kesalahan).
Ini tidak unik untuk Python, dan efek pastinya tergantung pada sistem operasi Anda dan bagaimana program dipanggil (meskipun 99% dari waktu, jika Anda hanya menjalankan skrip Python, itu tidak masalah).
Konvensi standar untuk semua program C, termasuk Python, adalah untuk exit(0)menunjukkan keberhasilan, dan exit(1)atau nilai non-nol lainnya (dalam kisaran 1..255) untuk menunjukkan kegagalan. Nilai apa pun di luar kisaran 0..255 diperlakukan modulo 256 (status keluar disimpan dalam nilai 8-bit). Kadang-kadang, itu akan diperlakukan sebagai ditandatangani (sehingga Anda mungkin melihat -128, -127, dll) tetapi lebih biasanya diperlakukan sebagai tidak ditandatangani.
Status ini tersedia untuk kode yang memanggil Python. Konvensi ini berlaku lintas platform, meskipun arti status keluar bukan nol dapat bervariasi pada platform yang berbeda.
Angka yang Anda berikan ke exit()fungsi hanyalah kode pengembalian program Anda, yang diberikan ke sistem operasi. Dari sudut pandang program Anda, tidak ada perbedaan: eksekusi akan berakhir pada kedua kasus, dan nilai yang diberikan ke fungsi akan diberikan ke OS. Tetapi beberapa alat dan skrip memperhitungkan kode keluar program. Sebagian besar alat mengembalikan 0 ketika mereka berhasil dan bukan nol untuk menunjukkan kesalahan.
Jadi, jika program Anda akan dijalankan dari skrip, alat otomatis atau dari beberapa perangkat lunak lain yang memperhitungkan kode pengembalian (seperti IDE), Anda harus berhati-hati dengan apa yang Anda kembalikan.
Jika ragu, kembalikan 0 untuk menunjukkan semuanya OK.
exit()
dalam dokumen , yang membutuhkan waktu lama untuk menemukannya.The site module (which is imported automatically during startup, except if the -S command-line option is given) adds several constants to the built-in namespace. They are useful for the interactive interpreter shell and should not be used in programs
sys.exit()
exit(0)
yang dibahas dalam pertanyaan ini dan juga satu dengan garis bawah_exit(0)
, perbedaannya dijelaskan di siniif
pernyataan dalambash
pembungkus, sehingga tindakan lebih lanjut dapat diambil apakah program Python berhasil atau tidak atau meningkatkan status tidak nol.Jawaban:
0 dan 1 adalah kode keluar.
exit(0)
berarti keluar bersih tanpa kesalahan / masalahexit(1)
berarti ada beberapa masalah / kesalahan / masalah dan itulah sebabnya program keluar.Ini bukan Python spesifik dan sangat umum. Kode keluar yang tidak nol diperlakukan sebagai keluar yang tidak normal, dan kadang-kadang, kode kesalahan menunjukkan apa masalahnya. Kode kesalahan nol berarti jalan keluar yang berhasil.
Ini berguna untuk program lain, shell, pemanggil, dll. Untuk mengetahui apa yang terjadi dengan program Anda dan melanjutkannya.
sumber
exit(-1)
, nilainya setara denganexit(255)
- 8 bit paling signifikan diteruskan ke program panggilan (shell atau apa pun).exit()
ditambahkan olehsite
modul, dan tidak boleh digunakan oleh program. Sebaliknya, gunakansys.exit()
, atau bahkanraise SystemExit
, jika Anda tidak ingin mengimpor modul lain.Ini menentukan status keluar dari program ketika selesai berjalan (umumnya, 0 untuk keberhasilan dan 1 untuk kesalahan).
Ini tidak unik untuk Python, dan efek pastinya tergantung pada sistem operasi Anda dan bagaimana program dipanggil (meskipun 99% dari waktu, jika Anda hanya menjalankan skrip Python, itu tidak masalah).
sumber
Konvensi standar untuk semua program C, termasuk Python, adalah untuk
exit(0)
menunjukkan keberhasilan, danexit(1)
atau nilai non-nol lainnya (dalam kisaran 1..255) untuk menunjukkan kegagalan. Nilai apa pun di luar kisaran 0..255 diperlakukan modulo 256 (status keluar disimpan dalam nilai 8-bit). Kadang-kadang, itu akan diperlakukan sebagai ditandatangani (sehingga Anda mungkin melihat -128, -127, dll) tetapi lebih biasanya diperlakukan sebagai tidak ditandatangani.Status ini tersedia untuk kode yang memanggil Python. Konvensi ini berlaku lintas platform, meskipun arti status keluar bukan nol dapat bervariasi pada platform yang berbeda.
sumber
Angka yang Anda berikan ke
exit()
fungsi hanyalah kode pengembalian program Anda, yang diberikan ke sistem operasi. Dari sudut pandang program Anda, tidak ada perbedaan: eksekusi akan berakhir pada kedua kasus, dan nilai yang diberikan ke fungsi akan diberikan ke OS. Tetapi beberapa alat dan skrip memperhitungkan kode keluar program. Sebagian besar alat mengembalikan 0 ketika mereka berhasil dan bukan nol untuk menunjukkan kesalahan.Jadi, jika program Anda akan dijalankan dari skrip, alat otomatis atau dari beberapa perangkat lunak lain yang memperhitungkan kode pengembalian (seperti IDE), Anda harus berhati-hati dengan apa yang Anda kembalikan.
Jika ragu, kembalikan 0 untuk menunjukkan semuanya OK.
sumber
exit(0)
: Ini menyebabkan program untuk keluar dengan penghentian yang sukses.exit(1)
: Ini menyebabkan program keluar dengan makna khusus sistem.Pada banyak sistem,
exit(1)
menandakan semacam kegagalan, namun tidak ada jaminan.Seingat saya, standar C hanya mengenali tiga nilai keluar standar:
EXIT_SUCCESS
- pemutusan hubungan kerja yang berhasilEXIT_FAILURE
- terminasi yang gagal0
-- sama denganEXIT_SUCCESS
sumber