0

我无法设置简单的边界。

我在这里使用此代码设置了最小和最大边界。

def min3(n,m,o):
    if (n<m<o or n<o<m):
        return(m)
    elif (o<m<n or o<n<m):
        return(o)

def max3(n,m,o):
    if (n>m>o or n>o>m):
        return(n)
    elif (m>n>o or m>o>n):
        return(m)
    elif (o>m>n or o>n>m):
        return(o)

此代码不会在我的终端上打印任何值,但如果我使用:

def min3(n,m,o):
    if (n<m<o or n<o<m):
        return("The minimum value is",n)

然后返回的值在终端中打印为“最小值为 n”,这看起来就像我正在与程序一起很好地移动。

但是,当我实际输入边界代码时,即:

def Boundaries(a,x,b):
    if (x < a):
        return False
    elif(x >=a and x<= b):
        return True

然后像往常一样运行程序,python3抱怨说

“不可排序的类型:int() < tuple()”

而且我不知道如何将“x”变成一个元组,或者将“a”变成一个整数。

4

3 回答 3

1

首先,您似乎输入了一个元组 a,这意味着您在代码中的某处拥有:

a = ("something, prob. numbers", )

或者

a = "something",

现在,要解决您的问题,最直接的方法是单行函数:

def boundaries(a, x, b):
    return a <= x and x <= b

如果表达式的计算结果为 False,我们返回 false。许多程序员通常忘记条件本身就是一个布尔值这一事实。

于 2013-07-18T02:04:06.163 回答
0

这有点令人困惑,为什么不直接使用 min 和 max 函数呢?

min(1,2,3) 
> 1

max(1,2,3)
> 3

并为您的边界功能

def boundaries(a, x, b):
    if a <= x <= b:
         return True
    return False #else
于 2013-07-18T01:33:06.057 回答
0

这是否按您的预期工作?

def Boundaries(a,x,b):
    return True if a <= x <= b else False
于 2013-07-18T00:42:40.970 回答