真实&在函数def中为假

时间:2016-06-10 11:52:35

标签: python

我理解下面的功能是什么,但我不能完全理解返回TrueFalse之间的重要性(或区别)。

两个条款都使程序退出;即,在输入肯定或否定响应时,将返回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?')

2 个答案:

答案 0 :(得分:2)

很少单独使用功能。在此处返回TrueFalse是为了帮助您的其他程序确定要执行的操作。例如:

if ask('Do you like cheese?'):
    order_cheese() # Some function you've previously defined

但是,如果您的函数设计为返回提示,则可以使用sys.exit()返回调用程序(vs函数)可以利用的成功代码。

答案 1 :(得分:1)

由于用户的答案可以是任意顺序的y or nyes or noy or nopeyes or nopey or no中的一方,该函数只是将这个二分法列表映射到一个简单的TrueFalse。因此,您可以使用该函数作为执行操作的条件。

if ask('Are you ill?'):
    print('Go see a physician')
else:
    print('Go hiking')

无需重新评估用户的原始详细回复。

这与确保function只有一个函数的想法非常一致,在这种情况下, booleanise 是用户的如果在多次试验后响应不一致,则回复或抛出错误