设置数字边界?

时间:2013-07-17 18:20:39

标签: python python-3.x

我在设置一个简单的边界时遇到了麻烦。

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

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抱怨说

“unorderable types:int()&lt; tuple()”

我无法弄清楚如何将“x”变成元组,或者将“a”变成整数。

3 个答案:

答案 0 :(得分:1)

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

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

a = "something",

现在,为了解决您的问题,最直接的方法是单行功能:

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

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

答案 1 :(得分:0)

这是否符合预期?

def Boundaries(a,x,b):
    return True if a <= x <= b else False

答案 2 :(得分:0)

这有点令人困惑,为什么不只使用最小和最大功能?

min(1,2,3) 
> 1

max(1,2,3)
> 3

并为你的边界功能

def boundaries(a, x, b):
    if a <= x <= b:
         return True
    return False #else