2016-06-13 11 views
1

Я читал сайт много лет, и сегодня это мой первый вопрос.Google Foobar: Атрибут Ошибка при отправке решения

Мне было предложено играть в Google Foobar для поиска Python, так как я тестировал свои новые знания после окончания учебника.

Когда я представляю свой 'solution.py' Я получаю следующее сообщение об ошибке: AttributeError на линии 13

Этот код прекрасно работает в Eclipse,

Это код:

from itertools import permutations 
import time 

x, y, z = 3, 19, 19 
values = [x, y, z] 
perm_obj = permutations(values) 

for v in perm_obj: 
    try: 
     if time.strptime(str(v), '(%m, %d, %y)'): #This is line 13 
      my_output.append(v) 
    except ValueError: 
     pass 

Изменить: perm_obj - результат itertools permutation method.

itertools.permutations(iterable, r=None) 

Редактировать: Я немного изменил код, чтобы показать, как выглядит perm_obj. Надеюсь, это поможет.

Код:

from itertools import permutations 
from datetime import datetime 

def answer(x, y, z): 

    values = [x, y, z] 
    perm_obj = permutations(values) 
    my_output = [] 

    for v in perm_obj: 
     try: 
      print(v) 
      datetime.strptime(str(v), '(%m, %d, %y)') 
      my_output.append(v) 
     except ValueError: 
      pass 

Выход:

(19, 19, 3) 
(19, 3, 19) 
(19, 19, 3) 
(19, 3, 19) 
(3, 19, 19) 
(3, 19, 19) 
+0

просьба привести один пример против или perm_obj – ravigadila

+0

Ravi,.? – Alex

+0

Если ваш код всего 10 строк, ошибка в строке 13 должна быть в коде Google :) – 9000

ответ

1

Похоже time является экземпляром datetime.time, который не имеет метод strptime. Поскольку вы строите дату, вы, вероятно, хотите, чтобы она была datetime.datetime.

import datetime 
if datetime.datetime.strptime(str(v), '(%m, %d, %y)'): 
    # etc 

или что то же самое:

from datetime import datetime 
if datetime.strptime(str(v), '(%m, %d, %y)'): 
    # etc 
+0

Позвольте мне попробовать! Спасибо – Alex

+0

Я понимаю, и он тоже работает, но ему все равно не нравится эта строка. – Alex

+0

@Alex Если вы публикуете полное сообщение об ошибке, а не только его небольшую часть, это очень поможет в процессе отладки. Не только тип и строка, но и все сообщение и трассировка. –

0

Так, похоже, проект foo.bar не нравится импортированный модуль DateTime. Я снял его и переписал код, чтобы сделать то, что сделал time.strptime(), и он начал работать.

К сожалению, мой код не прошел, и я не хватило времени, чтобы представить: «» '(

Я надеюсь получить еще пригласить