以下是我的工作内容:
def yes_or_no(answer):
if answer == 'yes':
return True
elif answer == 'no':
return False
我如何获得一些稍后的代码来检查并查看返回的内容? 阿卡我会写什么?
答案 0 :(得分:1)
试试真相:
if yes_or_no(answer):
# user picked yes
else:
# user picked no
如果answer
既不是'yes'
也不是'no'
,您可能想要考虑会发生什么。也许您之前在代码中已经检查过这种情况,但您也可以使用:
def yes_or_no(answer):
return answer == 'yes'
并完成它;现在它总是返回一个布尔值。如果是True
,则'yes'
,否则False
。
答案 1 :(得分:0)
我同意另一个答案 - 到目前为止这是一种更清洁的方法。但如果你决定对你的功能做些什么:
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
答案 2 :(得分:0)
正如其他人已经指出的那样,您应该验证用户输入。如果没有强制执行,千万不要期望用户输入符合您的期望。下面的代码使用循环,在输入与yes
或no
匹配之前不断询问用户。
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语句中的返回值。
if yes_or_no() == True:
print('Answered yes')
else:
print('Answered no')
Python解释器将if语句的条件计算为布尔值True
或False
。在上述情况下,==
为true或false。但由于yes_or_no()
已经返回一个布尔值,我们可以直接使用它。
if yes_or_no():
print('Answered yes')
else:
print('Answered no')
由于函数返回表示用户确认的布尔值,因此您还可以将函数重命名为user_confirmed()
。直觉上,user_confirmed()
可能是真或假,而yes_or_no()
则不能,因为其中一个总是发生。 if语句读起来更自然。
答案 3 :(得分:-1)
我真的很新,所以我可能完全错了(或者只是发布一个别人已经说过的不同的,可能更糟糕的版本,但你可以做到:
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
如果这是完全错误或不是你想要的,那么我很抱歉。