Python - 为什么有些测试用例失败了?

时间:2016-10-17 04:32:08

标签: python

所以我正在解决hackerrank的问题,我是python的初学者。

有关我正在尝试做什么的信息,请访问:https://www.hackerrank.com/challenges/compare-the-triplets?h_r=next-challenge&h_v=zen

a0,a1,a2 = input().strip().split(' ')
a0,a1,a2 = [int(a0),int(a1),int(a2)]
b0,b1,b2 = input().strip().split(' ')
b0,b1,b2 = [int(b0),int(b1),int(b2)]

a1 = 0
b1 = 0
lst1 = a0,a1,a2
lst2 = b0,b1,b2

for x, y in zip(lst1, lst2):
    if x > y:
        a1 += 1

    if x <y:
        b1 += 1

    else:
        pass

print(a1, b1)

所以这非常有效。

但是,在其中一个测试用例中,输入是

6 8 12
7 9 15

,输出应为

0 3

但是我的代码仍然失败了。为什么会这样?

2 个答案:

答案 0 :(得分:4)

我发现了2个问题。 1.变量名称相同。注意列表中的a1和a1作为单独的变量。 2.而不是打印,您可以使用&#39; {0} {1}&#39; .format(a1,b1) 另外我建议使用raw_input()而不是input(),这将有助于将输入视为字符串。

答案 1 :(得分:3)

也许您需要将代码中的a1,b1的varibale名称更改为其他名称。

....
a1 = 0
b1 = 0
...

他们会将输入a1 / b1删除为同名,我不明白为什么需要:)

a0,a1,a2 = [int(a0),int(a1),int(a2)]
b0,b1,b2 = [int(b0),int(b1),int(b2)]