2017-06-27 3 views
-2

私はPythonには新しく、言語についてもっと学ぶのに役立つさまざまな問題のウェブサイトを使っています。今私が問題にしているのは、整数を2つの別々の入力に取り込み、2つの入力の各ペアの間で最小値を見つけることです。私はこれを行う方法を知っており、既に成功していますが、問題はまた、最初に別々の入力で使用するペアの数を指定する必要があります。2つの入力の長さが別の入力で定義されている

最初の入力に入力された整数に他の2つの入力のペア数を一致させる方法を理解できません。私はそれを取得しようとしているので、最初の入力は次の2つの入力が持つペアの数であり、一致しなければ定義したエラーメッセージが出力されます。どうすればこれを達成できますか?どんな助けでも大歓迎です。

ここに私が達成しようとしているものの例があります。私は確信していますが、このコードには多くの間違いがあります。

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

少なくとも2つの入力された整数を2回見つけ出すプログラムを書く方法を知っていて、入力された2つの整数の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! 
関連する問題