-6

当且仅当此人的年龄大于 50 岁或他们有一个由 has_access_card 指示的访问卡时才返回 True。

这是我的程序:

def bypass_line(age, has_access_card):
    if age >50 or has_access_card ("yes"):
        return True

这是我得到的错误:

'str' object is not callable 
4

2 回答 2

2

has_access_card是一个字符串,你试图像函数一样调用它,它后面的括号是什么。

我很确定你的意思是has_access_card == "yes"相反。

一个更好的方法可能是传递TrueorFalse而不是字符串,或者,如果您必须传递一个字符串(例如因为它是用户输入),那么使用has_access_card.lower().startswith("y")最能容忍可能传入的内容。

于 2013-11-02T15:38:01.180 回答
1

据我所知,has_access_card是一个字符串。如果是这样,那么(...)在它之后放置将使 Python 尝试将其作为函数调用。字符串不能像函数一样被调用,所以你会得到一个错误。

我想你真正的意思是这样的:

def bypass_line(age, has_access_card):
    if age > 50 or has_access_card == "yes":
        return True

此方法查看是否has_access_card等于"yes"

于 2013-11-02T15:38:25.140 回答