具有两个输入的长度由另一个输入

时间:2017-06-27 00:48:22

标签: python variables

我是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 个答案:

答案 0 :(得分: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!