Форум сайта python.su
Дан файл text.txt, содержащий некоторый достаточно длинный текст в
в одну строку
Отредактировано be_smmr (Июнь 9, 2016 20:35:05)
Офлайн
Покажите же широкой общественности ваше клавиатурное произведение
Офлайн
be_smmrВариантов может быть масса. В чем вопрос?
Я начал делать данную задачу через метод split(), когда цикл доходит до 150 элемента, идет вставка.
Офлайн
Можете предложить свой вариант решения, даже не обязательно и в виде кода.
Просто
b = a.split(" ") for i in range(len(b)): for j in range(len(b[i])):
Офлайн
be_smmrВопрос понял.
Но может есть что-то более удобное для реализации данной задачи?
for word in b.split(): count+=len(word)+1 if count>150: pass
a=""" asd asd qwe qwe """ >>> a.split(" ") ['', 'asd', 'asd\nqwe', 'qwe\n']
Офлайн
Спасибо за данный код, но как реализовать именно тот момент, что перенос должен быть на 150 элементе, если он является пробелом или если 150 является любым иным символом - нужно после дойти до пробела и сделать срез.
Офлайн
be_smmr120 символов тоже не длинее 150. зачем тогда именно по 150 делить?
Отформатировать исходный файл так, чтобы каждая строка была не
длиннее 150 символов
Офлайн
be_smmrНе путайте элементы, слова и буквы. Я привел практически рабочий код. вам надо добавить 3-4 строчки. Смысл такой если следующее слово делает строку длиннее 150 букв то надо перед печатью слова напечатать перевод строки.
перенос должен быть на 150 элементе
Отредактировано doza_and (Июнь 8, 2016 22:18:37)
Офлайн
be_smmrгде тут написано что перенос должен быть на 150 символе????
Отформатировать исходный файл так, чтобы каждая строка была не
длиннее 150 символов
be_smmrтак вы никогда не измените строку потому как 1 из 1000 вариантов что 150 символ будет пробел! поэтому ищете в строке пробел который ближе всех находиться возле 150 символа и по нему делите. получается согласно условию НЕ БОЛЕЕ 150 символов и Переносы внутри слов НЕ допускаются
Переносы внутри слов не допускаются
Офлайн
a = "Длинный текст" a_2 = "" a_3 = "" k = 0 k_2 = 100 for i in range(len(a)): if i == k_2: a_2 = a[k:k_2] b = a_2.rfind(' ') a_3 = a_2[k:b] k = b k_2 += 100 print(a_3)
Офлайн