2016-01-07 111 views
1

我是一個學生是相當東東學習編程語言,我決定拿起Python和我真的很喜歡它至今。 我可能有一個愚蠢的問題,但我似乎無法找到解決方案,我寫了一個程序的一部分,用戶輸入3個值。如果即使其中一個值打破了陳述,它也應該打印出正確的答案。 這就是我..的Python如果條件滿足,打印「...」

lengte = input("Wat is de lengte die u nodig hebt?") 
breedte = input("Wat is de breedte die u nodig hebt?") 
hoogte = input ("Wat is de hoogte die u nodig hebt?") 
a = 140 
aa = 100 
aaa = 110 
b = 220 
bb = 115 
bbb = 120 
if(hoogte in range(a) and breedte in range(aa) and hoogte in range(aaa)): 
    print "Type A" 
if(hoogte in range(a,b) or breedte in range(aa,bb) or hoogte in range(aaa,bbb)): 
    print "Type B" 

但是當我在170 hoogte和40,40 breedte給予和hoogte它仍然打印出「A型」,而在我的眼裏它應該說是「B型」因爲該值超過AA,但作爲BB低..

任何幫助,將不勝感激,對不起,如果這似乎是一個「小白」的問題..但葉我是很新的這一點。

+2

'input'給出一個字符串,它只是純文本。文本和數字是不同的,所以你必須通過包裝來將hoogte轉換爲整數:'int(hoogte)'。只有這樣你才能測試它是否在_numbers_範圍內。編輯:忽略這一點,我沒有意識到它是Python 2. –

+1

這是python2,所以'輸入'給出一個int。 – Brian

+0

哦oke謝謝,生病試試看,馬上讓你知道:D –

回答

-1

的問題是,您所指定A,AA,AAA等爲範圍,但沒有給出範圍。因此,請使用==運算符來測試您的輸入是否等於您指定的任何變量。

這對我有效。

lengte = input("Wat is de lengte die u nodig hebt?") 
breedte = input("Wat is de breedte die u nodig hebt?") 
hoogte = input ("Wat is de hoogte die u nodig hebt?") 
a = 140 
aa = 100 
aaa = 110 
b = 220 
bb = 115 
bbb = 120 

if(hoogte ==a and breedte == aa and hoogte == aaa): 
    print "Type A" 
if(hoogte ==a,b or breedte == aa,bb or hoogte == aaa,bbb): 
    print "Type B" 
+0

實際上這隻會打印出「type B「,因爲第一個條件需要'hoogte == a和hoogte == aaa',只要'a!= aaa'將總是爲False,但第二個條件在語句中有逗號,這意味着它實際上正在檢查一個元組對於事實,請嘗試:'print(hoogte == a,b或breedte == aa,bb or hoogte == aaa,bbb)'具有多於0個元素的元組將始終被視爲True。 –

1

可能是你輸入錯誤的第一個條件。你輸入它hoogte,但它可能是lengte。

if(lengte in range(a) and breedte in range(aa) and hoogte in range(aaa)): 
    print "Type A" 
if(lengte in range(a,b) or breedte in range(aa,bb) or hoogte in range(aaa,bbb)): 
    print "Type B" 

第一條件邏輯將只打印「A類」,如果所有條件都爲真,而第二個將打印「類型B」,如果至少一個條件爲真。