Python 将打印语句添加到ValueError异常
Python新手,所以我肯定这是一个noob问题,但谷歌并没有给我一个明确的答案 鉴于以下函数旨在确保用户输入是字符串,为什么在触发异常时我不能(或如何)添加打印语句?我在那里插入的打印语句无效Python 将打印语句添加到ValueError异常,python,string,function,python-2.7,exception-handling,Python,String,Function,Python 2.7,Exception Handling,Python新手,所以我肯定这是一个noob问题,但谷歌并没有给我一个明确的答案 鉴于以下函数旨在确保用户输入是字符串,为什么在触发异常时我不能(或如何)添加打印语句?我在那里插入的打印语句无效 def string_checker(action): try: check = isinstance(action, basestring) if check == True: return True except ValueEr
def string_checker(action):
try:
check = isinstance(action, basestring)
if check == True:
return True
except ValueError:
print "We need a string here!"
return None
action = "words"
string_checker(action)
问题是,如果
action
不是字符串,就永远不会引发值错误。试试这个:
def string_checker(action):
try:
check = isinstance(action, basestring)
if check:
return True
else:
raise ValueError
except ValueError:
print "We need a string here!"
return None
但真的,我认为你不需要例外。这应该很好:
def string_checker(action):
try:
check = isinstance(action, basestring)
if check:
return True
else:
print "We need a string here!"
return None
我不太明白。这显示为打印“此处需要字符串!”:
注意
try
中的raisevalueerror()
。您确定正在引发异常吗?这可能会满足您的要求:
def string_checker(action):
try:
assert isinstance(action, basestring)
return True
except AssertionError:
print "We need a string here!"
return None
action = "words"
string_checker(action)
string_checker(21)
但您也可以返回“我们需要一个字符串!”而不是打印它,或者返回False,以保持一致性。谢谢!那么ValueError不是我应该在那里使用的吗?
def string_checker(action):
try:
assert isinstance(action, basestring)
return True
except AssertionError:
print "We need a string here!"
return None
action = "words"
string_checker(action)
string_checker(21)