比较两个三位数字

时间:2018-01-15 21:48:24

标签: python digits

我被困在一个名为'罢工或球'的游戏中

出现了IndexError。

这有一个非常简单的规则。 如果我输入三个数字类型为'str'的数字,则将其与'random'制作的另外三个数字进行比较。

  1. 如果他们只共享一个数字并且它被放置在同一个空间中。例如274,286 它只涉及一个'罢工'
  2. 即使在一个数字和不同的空间共享,例如274,826 它只涉及一个'球'
  3. 如果,最后,我正确地输入了三位数字,那就是'3 strikes'。
  4. (“123”,“472”)[0,1]

    (“742”,“472”)[1,2]

    (“472”,“472”)[3,0]

    这是一些例子。

    这是我的尝试,当然,这是错误的......

    def get_strikes_or_ball(user_input_number, random_number):
        a = str(user_input_number)
        b = str(random_number)
        c = [val for val in a if val in b]
        i = 0
        strike = 0
        ball = 0
        while c:
            if a[i] == b[i]:
                strikes = strikes + 1
            elif a[i] == b[i+1]:
                ball = ball + 1
            elif a[i] == b[e+2]:
                ball = ball + 1
        result = str('strike : ', strike,"  ", 'ball : ', ball)
        # ==================================
        return result
    

1 个答案:

答案 0 :(得分:0)

如果我理解正确你想要计算a中有多少个数字也在b中的相同位置(打击)或其他位置(球)。如果这是正确的,应该这样做:

Dictionary<TestType, List<TestCase>> dataAsDictionary =
                        data.GroupBy(x => x.TestType)
                        .ToDictionary(k => k.Key, v => v.Select( f=> 
                                new TestCase() { Id = f.Id }).ToList());