我理解下面的功能是什么,但我不能完全理解返回True
和False
之间的重要性(或区别)。
两个条款都使程序退出;即,在输入肯定或否定响应时,将返回Python提示,那么内部实际发生了什么变化?
另外,如果我自己设计这样的功能,我应该使用True
还是False
如果我只是想让程序在不实际的情况下将提示返回给我做什么?
def ask(prompt, retries = 4, reminder = 'Please try again!'):
while True:
response = input(prompt)
if response in ('y', 'yes'):
print('Got y or yes!')
return True
if response in ('n', 'no', 'nope'):
print('Got n or no or nope!')
return False
retries = retries - 1
if retries < 0:
raise ValueError('Invalid user response!')
print(reminder)
ask('Do you wanna quit?')
答案 0 :(得分:2)
很少单独使用功能。在此处返回True
或False
是为了帮助您的其他程序确定要执行的操作。例如:
if ask('Do you like cheese?'):
order_cheese() # Some function you've previously defined
但是,如果您的函数设计为返回提示,则可以使用sys.exit()返回调用程序(vs函数)可以利用的成功代码。
答案 1 :(得分:1)
由于用户的答案可以是任意顺序的y or n
,yes or no
,y or nope
,yes or nope
,y or no
中的一方,该函数只是将这个二分法列表映射到一个简单的True
或False
。因此,您可以使用该函数作为执行操作的条件。
if ask('Are you ill?'):
print('Go see a physician')
else:
print('Go hiking')
无需重新评估用户的原始详细回复。
这与确保function
只有一个函数的想法非常一致,在这种情况下, booleanise 是用户的如果在多次试验后响应不一致,则回复或抛出错误