Python 如何检查函数是否在事实发生后返回T或F?
以下是我的工作内容:Python 如何检查函数是否在事实发生后返回T或F?,python,python-2.7,Python,Python 2.7,以下是我的工作内容: def yes_or_no(answer): if answer == 'yes': return True elif answer == 'no': return False 我如何获得一些稍后的代码来检查并查看它返回什么? 我会写些什么?只是测试一下真相: if yes_or_no(answer): # user picked yes else: # user picked no 如果答案既不是的“是”
def yes_or_no(answer):
if answer == 'yes':
return True
elif answer == 'no':
return False
我如何获得一些稍后的代码来检查并查看它返回什么?
我会写些什么?只是测试一下真相:
if yes_or_no(answer):
# user picked yes
else:
# user picked no
如果答案既不是的“是”
也不是的“否”
,那么您可能需要考虑应该发生什么。也许您已经在前面的代码中检查过这种情况,但您也可以使用:
def yes_or_no(answer):
return answer == 'yes'
并就此了结;现在它将始终返回布尔值<代码>正确
在出现是
的情况下,以及错误
的情况下,不管怎样。我同意另一个答案-到目前为止,这是一个更干净的方法。但是,如果您决定对您的功能做些什么:
def yes_or_no(answer):
if answer == 'yes':
return True
elif answer == 'no':
return False
answer = raw_input('yes or no?')
x = yes_or_no(answer)
print x
我真的是新来的,所以我可能完全错了(或者只是发布了一个不同的,可能更糟的,别人已经说过的版本,但是你可以做:
yes_or_no = raw_input("say yes or no")
if yes_or_no == "yes":
variable = True
elif yes_or_no == "no":
variable = False
print variable
如果这是完全错误的,或者不是您想要的,那么我很抱歉。正如其他人已经指出的那样,您应该验证用户输入。如果不强制执行,则不要期望用户输入符合您的期望。下面的代码使用一个循环,不断询问用户,直到输入匹配
是或否
def yes_or_no():
while True:
text = input('yes or no? ')
if text == 'yes':
return True
elif text == 'no':
return False
else:
print('Invalid input')
现在可以将函数的返回值赋给新变量,并在if语句中使用该值
answer = yes_or_no()
if answer == True:
print('Answered yes')
else:
print('Answered no')
if yes_or_no() == True:
print('Answered yes')
else:
print('Answered no')
还可以直接在if语句中使用返回值
answer = yes_or_no()
if answer == True:
print('Answered yes')
else:
print('Answered no')
if yes_or_no() == True:
print('Answered yes')
else:
print('Answered no')
Python解释器将if语句的条件求值为布尔值,True
或False
。在上述情况下,==
为True或False。但是由于yes\u或\u no()
已经返回布尔值,我们可以直接使用它
if yes_or_no():
print('Answered yes')
else:
print('Answered no')
由于您的函数返回一个表示用户确认的布尔值,您还可以将该函数重命名为类似于user\u confirm()
。直观地说,user\u confirm()
可以是真的,也可以是假的,而yes\u或\u no()
不能,因为其中一个总是发生。if语句读起来更自然。如果答案既不是是
也不是否
,此函数将返回无
。为什么有人否决我?如果它不起作用,请至少告诉我原因。