首页 > 解决方案 > 我在这里做错了什么?我是 python 新手

问题描述

按照上面指定的细节完成功能标志的主体(下面有签名)。

def sign(t):
    "Returns +1 for t>=0, -1 otherwise"

解决方案:

def sign(t):

sign = lambda t: -1 if t < 0 else 1 if t >=0

上面显示了语法错误。我在这里做错了什么?它有点显示名称“符号”未定义

标签: pythonpython-3.x

解决方案


似乎您只需要一个小功能。这是你要找的吗?

def sign(t):
    if t < 0:
        return -1
    else:
        return 1

此外,您的 lambda 有一件事是错误的。如果你把它当作一个普通函数来展开,它看起来像这样:

def sign(t):
    if t < 0:
        return -1
    else:
       return 1 if t >= 0

所以,只有两种情况。t 要么小于 0,要么大于或等于 0。因此,以下代码将起作用:

sign = lambda t: -1 if t < 0 else 1
print(sign(2)) # will return 1

推荐阅读