2016-10-17 4 views
4

Так что я работаю над проблемами на hackerrank, я новичок в python.Python - Почему некоторые тестовые примеры не работают?

Информация о том, что я пытаюсь Dois здесь: 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 

Однако мой код держит неудачу его. Почему это так?

+0

Неудача, как именно? –

+0

@LegoStormtroopr Он не дает правильного выхода и не проходит тест doc. Я не уверен, какой вывод он дает, но вы можете попытаться сделать то же самое на сайте, используя мой код. – Theo

+0

Это распечатка случайных сонетов Шекспира? Точно как это терпит неудачу. Какой результат он дает? –

ответ

3

Возможно, вам нужно изменить имя varicale a1, b1 в коде на некоторые другие имена.

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

Они будут удалены вход a1/b1, как же именем, я не понимаю, почему это нужно :)

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

о, ничего себе! хороший улов, я полностью пропустил это. Он работает, если я изменю переменные на что-то еще lol. – Theo

4

Я нахожу 2 вопроса в этом. 1. Имена переменных одинаковы. Обратите внимание на a1 в списке и и a1 как отдельную переменную. 2. Вместо печати вы можете использовать '{0} {1}'. Format (a1, b1) Также я бы предложил использовать raw_input() вместо input(), что поможет вашему вводу обрабатываться как строка.

Смежные вопросы