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