#python-3.x
#python-3.x
Вопрос:
Я пытаюсь преобразовать формат даты США в формат даты ЕС. Это часть задания, и преподаватель дал нам тестовый файл для проверки наших ответов.
Я могу напечатать правильную дату, но я получаю ошибку при тестировании.
Это то, что у меня есть:
def US_to_EU(date):
df = [date]
f = [datetime.strptime(d, "%m/%d/%y").strftime("%d.%m.%y") for d in df]
return(f)
US_to_EU('3/13/18')
Это то, что я получаю при печати результатов:
['13.03.18']
Мне нужно, чтобы он вернул:
'13.03.18'
Это то, что говорит мне тест, который я запускаю:
FAIL: test_US_to_EU (__main__.TestStrings)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/john/Desktop/John's School/Spring 2019/ISTA 130 Srping 2019/HW/HW 5/test_strings.py", line 12, in test_US_to_EU
self.assertEqual('12.3.18', US_to_EU('3/12/18'))
AssertionError: '12.3.18' != None
Кто-нибудь может мне помочь с этим? Я знаю, что это, вероятно, самая простая вещь на свете, но я уже 9 недель новичок в этом деле и все еще новичок.
Ответ №1:
Возможно, вместо того, чтобы писать:
f = [datetime.strptime(d, "%m/%d/%y").strftime("%d.%m.%y") for d in df]
вы должны написать:
f = [datetime.strptime(d, "%m/%d/%y").strftime("%d.%m.%y") for d in df][0]
Или, что еще лучше, не оборачивайте строку массивом. Итак, ваш код будет выглядеть следующим образом:
def US_to_EU(date):
f = datetime.strptime(date, "%m/%d/%y").strftime("%d.%m.%y")
return(f)
US_to_EU('3/13/18')
Это вернет '13.03.18'
.