2017-06-27 48 views
-2

我對Python非常陌生,並且一直在使用具有不同問題的網站來幫助我瞭解有關該語言的更多信息。我現在所面臨的問題是在兩個單獨的輸入中取整數,並找出兩個輸入中每對 之間的最小值。我知道如何做到這一點,並且已經成功了,但是問題還需要在開始時在單獨的輸入中指定要使用的對的數量。具有兩個輸入的長度由另一個輸入定義

我不知道如何匹配其他兩個輸入對的數量與第一個輸入中輸入的整數。我一直在試圖獲得它,所以第一個輸入是接下來兩個輸入會有的對的數量,如果它們不匹配,它將打印我定義的錯誤消息。我可以通過什麼方式實現這一目任何幫助是極大的讚賞。

下面是我試圖完成的一個例子。儘管我確信這個代碼有很多錯誤。

def test(): 
    a = int(input("Enter number of pairs: ")) 
    b = [input("Enter first numbers: ").split()] 
    c = [input("Enter second numbers: ").split()] 
    for i in a: 
     pairs = i 
     if len(b) and len(c) != pairs: 
      print("Error! Number of pairs not equal!") 
     elif len(b) and len(c) == pairs: 
      d = int(b) 
      e = int(c) 
      for g,h in zip(d, e): 
       print(min(g, h)) 
+1

歡迎堆棧溢出。爲了最好地幫助您,請提供一個完整的,最小的和可驗證的示例。 – TomServo

+0

請參閱[mcve]。 – anonymoose

+0

請澄清:您知道如何編寫一個程序來查找兩次輸入的整數的最小值兩次,並且需要知道如何編寫程序來查找x次輸入的整數的最小值,其中x由用戶輸入。 –

回答

0

我不知道爲什麼你可能想要包含作爲參數的對數。或者我甚至可能還沒有正確理解這個問題。但是,我可以提出一個簡單的解決方案

def f(num_pairs): 
    if type(num_pairs) is not list or not num_pairs: 
     print("No proper pair was found!") 
    else: 
     for pair in num_pairs: 
      print(min(pair)) 
                #Outputs: 
f(5)            #No proper pair was found! 
f([])            #No proper pair was found! 
f([[1, 2]])          #1 
f([[7, 2], [3, 10], [5, 2], [2, 2]])    #2 
                #3 
                #2 
                #2 

我想這是你想要什麼:

def foo(num_paris, first_ones, second_ones): 
    if num_paris != len(first_ones) and num_paris != len(second_ones): 
     print("Wrong!") 
    else: 
     for first, second in zip(first_ones, second_ones): 
      print(min(first, second)) 

          #Outputs:  
foo(2, [], [])    #Wrong! 
foo(2, [7, 8], [8])  #Wrong! 
foo(2, [7, 8], [8, 7])  #7 
          #7 
foo(3, [7, 8], [8, 7])  #Wrong! 
相關問題