我在设置一个简单的边界时遇到了麻烦。
我在这里使用此代码设置了最小和最大边界。
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”变成整数。
答案 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