我是新來的Python,我試圖使用exit
功能從sys
,但不知何故,它不工作在我的電腦上。這是我的代碼:退出功能不起作用
from sys import exit
userResponse = input ("n or y?")
if not (userResponse =="n" or userResponse =="y") :
exit ("ERROR")
我是新來的Python,我試圖使用exit
功能從sys
,但不知何故,它不工作在我的電腦上。這是我的代碼:退出功能不起作用
from sys import exit
userResponse = input ("n or y?")
if not (userResponse =="n" or userResponse =="y") :
exit ("ERROR")
你必須正確地縮進:
if not (userResponse =="n" or userResponse =="y") :
exit('Error')
你也可以拋出一個得到一個更描述性錯誤消息:
userResponse = input ("n or y?")
if not (userResponse =="n" or userResponse =="y") :
raise ValueError('Does not work')
,但我需要寫一個錯誤按摩! – jooj
擴展我的答案。 – mrCarnivore
我試圖在我的python終端中寫入exit(「ERROR」),它工作正常。它什麼時候需要是一個整數? (我也認爲把它留空將工作) –
上跟進@MrCarnivore ...
from sys import exit
userResponse = raw_input("n or y?")
if not (userResponse =="n" or userResponse =="y"):
print('Error Message Here')
exit(1)
我得到這個錯誤按摩:(錯誤 發生異常,使用%TB看到完整回溯 SystemExit:1 /Users/juhina/anaconda/lib/python3.6/site-packages/IPython/ core/interactiveshell.py:2889:UserWarning:退出:使用'exit','quit'或Ctrl-D warn(「退出:使用'退出','退出'或Ctrl-D。 stacklevel = 1) – jooj
什麼時候退出需要一個整數?在我的交互式控制檯,2.7,它可以正常工作,退出('MESSAGE')「 –
@cer:」「」exit(...) exit([status] ) 通過提高SystemExit(狀態)退出解釋器 如果省略狀態或None,它將默認爲零(即成功) 如果狀態是一個整數,它將被用作系統退出狀態。 如果是另一種對象,它將被打印並且系統退出狀態將是一個(即失敗)。「」「 - IOW傳遞一條消息是完全合法的。同樣,如果你想打印錯誤,打印它們'sys.stderr','sys.stdout'用於正常的程序輸出 –
Exi t引發了一個例外情況SystemExit
;這就是它如何終止程序。終止後你的環境顯示異常並不是一個錯誤,它只是向你顯示原因。我同意你(一樣,例如,this PEP),默認的行爲應該是不打印出此異常的追溯信息,併爲KeyboardException
但最終,執行停止,因爲它被設計來做。
請參閱該文檔的詳細信息: https://docs.python.org/2/library/sys.html#sys.exit
一些答案在這裏首先指出,你不能傳遞了一個字符串exit
。那是假:從所述文檔(重點煤礦)
可選參數arg可以是一個整數,給出退出狀態(默認爲零),或另一種類型的對象。如果它是一個整數,零被認爲是「成功的終止」和任何非零值由殼和類似物被認爲是「異常終止」。大多數系統要求它在範圍0-127,和另外產生不確定的結果....如果對象的另一種類型的通過,沒有相當於傳遞零,以及任何其他對象被打印到stderr和結果在出口1. 特別是,sys.exit(「一些錯誤消息」)的代碼是一個快速的方法時發生錯誤時退出程序。
的內置exit
功能做同樣的事情。在一般情況下,它是不是很大從一個模塊中導入,儘管在這種情況下,它並不重要影子內建函數。推薦款式會
import sys
sys.exit("My exception")
如果這看起來不直觀給你,你可以通過使用os._exit繞過異常處理。不要這樣做沒有理由
是(「發生異常,使用%tb查看完整的回溯。 SystemExit:錯誤」) – jooj
代碼甚至不是有效的,請修復它。 – norok2
哪個python版本以及如何運行代碼? –