有没有办法让python为错误的输入文本返回错误?

时间:2014-01-29 05:26:15

标签: python python-2.7

我正在创建一个程序,其中包含yes或no选项。我想知道是否有一种方法可以让python返回“未经授权的文本”,如果输入的是“是”或“否”之外的任何内容。

3 个答案:

答案 0 :(得分:1)

,您可以raise Exception作为参数传递给它作为必要信息。

def f(my_input):
    if my_input in ("Yes", "No"):
        return "Success"
    else:
        raise Exception("Unauthorized text")

print f("Yes")
print f("No")
print f("StackOverflow")

<强>输出:

Success
Success
Traceback (most recent call last):
  ...
Exception: Unauthorized text

编辑:正如@tripleee评论的那样,如果这不是您所期望的,您可以简单地返回一个字符串:

def f(my_input):
    if my_input in ("Yes", "No"):
        return "Success"
    else:
        return "Unauthorized text"

答案 1 :(得分:0)

这样的事可能吗?

if input.lower() == 'yes':
    # do one thing
elif input.lower() == 'no':
    # do another thing
else:
    print "unauthorized text"

答案 2 :(得分:0)

如果你想继续问,直到他们做对了:

def getYesNo(msg=None):
    if msg is None: msg = "Yes or No?"
    choice = ''
    choices = {'yes': True, 'y': True, 'no': False, 'n': False}
    while choice.lower() not in choices:
        choice = raw_input(msg + ' ')
    return choices[choice]

如果您想提出异常:

def getYesNo(msg=None):
    if msg is None: msg = "Yes or No?"
    choice = ''
    choices = {'yes': True, 'y': True, 'no': False, 'n': False}
    choice = raw_input(msg + ' ')
    if choice not in choices:
        raise ValueError, "Unauthorized Text"
    return choices[choice]