Я в настоящее время на втором курсе Python, и в нашем обзоре разминки я озадачен, казалось бы, простой проблемой. Вот как это указано:
В этом упражнении ваша функция получит 1 параметр - имя текстового файла. Функция вернет строку, созданную путем объединения пятого символа из каждой строки в одну строку. Если строка содержит менее 5 символов, то строка должна быть пропущена. Перед поиском пятого символа во всех строках должны быть удалены начальные и конечные пробелы.
CodeGrinder затем оценивает его на основе случайно сгенерированных файлов .txt. Вот код, который у меня сейчас есть:
def fifthchar(filename):
file = open(filename)
fifthstring = ''
for x in file:
x.strip('\n ')
if len(x) >= 5:
fifthstring += x[4]
else:
pass
fifthstring.strip('\n ')
return fifthstring
И возвращаемая ошибка:
AssertionError: False неверно: пятый char (rprlrhya.txt) вернул mylgcwdnbi
dmou. Он должен был вернуть mylgcwdnbidmou. Проверьте свою логику c и попробуйте снова.
Кажется, что через мои .strip()
пробиваются новые строки, и я не уверен, как их удалить. Я думал, что .strip()
удалит \n
, и я попробовал все от .rstrip()
до fifthstring.join(fifthstring.split())
, чтобы иметь избыточность при удалении как пятой строки, так и x в l oop. Как проходят эти новые строки?