2017-07-04 51 views
0

在下面的程序中,即使所有if條件都匹配,它只返回一次真。我如何讓條形碼符合條件並且多次打印?在嵌套的if循環中,如何爲多個匹配條件返回true?

lotto_numbers = [1,1,1] 
fireball_number = 1 
user_input1 = user_input2 = user_input3 = 1 

def fbcheck(): 
    if lotto_numbers == [user_input1,user_input2,fireball_number]: 
     return True 
    elif lotto_numbers == [fireball_number, user_input2, user_input3]: 
     return True 
    elif lotto_numbers == [user_input1, fireball_number, user_input3]: 
     return True 
    else: 
     return False 

if (fbcheck() == True): 
    print ('you won') 
+0

'返回排序(lotto_numbers)==排序([user_input1,user_input2,fireball_number])'? –

+0

你爲什麼希望它對它有真實的程度?這是真的,或者不是。你能否給我們一些關於你想要做什麼的想法,以及這些數字排序背後的邏輯。 –

+0

我是編程新手,我嘗試了一個樂透計劃,如果多個條件匹配,獎勵用戶多次。這是我測試的一個條件。因此硬編碼lotto_number和fireball_number。將添加我的實際代碼也可供參考。 – Varun

回答

1

您可以使用all

def fbcheck(): 
    user_data = [user_input1,user_input2,fireball_number] 

    lotto_numbers = [1,1,1] 

    print([a==b for a, b in zip(lotto_numbers, user_data)]) 

    return all(a==b for a, b in zip(lotto_numbers, user_data)) 



print(fbcheck()) 

輸出:

[True, True, True] 

True 
+0

首先'print'是死碼;/ –

+0

@Chris_Rands固定。請參閱我最近的編輯。 – Ajax1234