Есть две проблемы.Во-первых, индексы не являются числами с плавающей запятой, и вы не должны делать с ними математические вычисления с плавающей запятой.Индексы - это строки вида строка . символ .
Например, в числах с плавающей запятой 1.3 и 1.30 идентичны.В качестве индексов «1.3» представляет третий символ в строке 1, а «1.30» представляет тридцатый символ в строке 1.
Кроме того, вы пренебрегаете копированием новой строки в конце каждой строки.Вы не можете вставить строку 2 в другом окне, если строка 1 не заканчивается новой строкой, вы не можете вставить строку 3, если вторая строка не заканчивается новой строкой и т. Д.
Iне знаю, каково ваше намерение, поэтому трудно рекомендовать решение.Например, действительно ли вы хотите скопировать только первые 30 символов строки, или ваша цель - скопировать всю строку?
Если вам нужны только первые 30 символов строки и скопировать ее вНовая строка в другом окне, вам нужно вставить новую строку при копировании.Например:
self.windowOut.insert("end", inputText+"\n")
Если ваша цель просто скопировать целые строки, вы можете использовать модификатор, чтобы скопировать всю строку плюс завершающий символ новой строки.Или скопируйте только всю строку без новой строки, и, как выше, вы можете добавить новую строку при копировании.
Вот как получить полную строку:
end = "{} lineend".format(self.a)
Вот какполучить полную строку плюс завершающий перевод строки:
end = "{} lineend+1c".format(self.a)