0

用 python 代码填写框,使程序行为与注释匹配。您不得对代码进行任何其他更改或在括号“()”之外添加代码。

def bypass_line(age, has_acces_card):
''' (int, bool) -> bool
Return True if and only if the person's age is greater than 50 or
they have a access card as indicated by has_access_card.
'''


return (                    )

这是我正在做的练习题。我进退两难,我知道如何编写代码......

这是:

def bypass_line(age, has_vip):
    if age >70 or has_vip =="yes":
        return True
    return False

但是我如何在()中写一行代码,以便我回答了这个问题?

4

3 回答 3

3

您的if表达式已经产生了一个布尔值;要么True要么False。可以直接退货:

return age > 70 or has_vip == "yes"

这基本上就是if测试的目的;接受你的表达,将其传递给bool()并查看它是否是Trueor False。这里bool()不需要,因为比较运算符 ( > and ==) 本身已经返回Trueor False

>>> age = 60
>>> age > 70
False
>>> age = 80
>>> age > 70
True
于 2013-11-02T16:00:21.983 回答
2

像这样:

def bypass_line(age, has_acces_card):
    return age > 50 or has_acces_card == "yes"

这基本上是返回由 if 语句评估的表达式本身。由于表达式已经在 if 语句中返回True或返回,所以它在这里也会做同样的事情。False

于 2013-11-02T15:59:41.683 回答
0

在 bypass_line 函数内部,您可以简单地编写

return age > 50 or has_acces_card == "yes"

由于我更像是一个 C++ 人,我更喜欢这样组织代码。它帮助我更清晰地思考。

return (age > 50) or (has_acces_card == "yes")

无论哪种方式,代码都只是检查该人是否

  • 年龄大于 50
  • 有门禁卡

如果其中任何一个为真(因此为or),该函数将返回一个True。否则,它将返回错误。

逻辑与语句中的逻辑完全相同,只是在语句中使用if了结果Trueor (您仍然有相同的表达式,只是结果在其他地方使用)。您可以在任何地方使用该(或实际上任何)表达式,例如在 a中,变量的定义,作为函数的参数......逻辑总是相同的。Falsereturnprint

于 2013-11-03T01:46:39.410 回答