2013-07-17 113 views
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笙歌說

「unorderable類型:INT()<元組()」

我不知道如何將「x」變成一個元組,或者將「a」變成一個整數。

+0

你傳遞給這些函數的參數是什麼?如果你能更詳細地描述這些,這將有所幫助。當我從終端運行'Boundaries'時,如果我發送所有整數值,我會收到'True'或'False'輸出。 –

+0

我還從第二個'min3'函數中收到'None'類型,例如'print min3(10,5,11)'產生'None'。看來也許你的邏輯沒有考慮到所有可能的「其他」條件。 –

回答

0

這是否工作如何你期望?

def Boundaries(a,x,b): 
    return True if a <= x <= b else False 
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 
0

首先,好像你必須輸入一個元組,這意味着在你的代碼的某個地方,你有:

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

a = "something", 

現在,爲了解決您的問題問題,最直接的方法是單線功能:

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

如果表達式計算結果爲False,則返回false。許多程序員通常會忘記條件本身就是一個布爾值。