Как написать программу, которая убирает пробелы?

Одна моя пожилая знакомая боится деменции. Я предложил ей идею: взять небольшой текст (пару-тройку абзацев), удалить из него все пробелы и попробовать прочесть.

Например, абзац, начинающийся словами:

В тридевятом царстве, в тридесятом государстве. ...

после обработки такой программой начинался бы так:

Втридевятомцарстве,втридесятомгосударстве....  

Как написать такую программу на Python-3 ?
И как сделать так, чтобы моя знакомая смогла с этой программой работать?
То есть чтобы ей не пришлось открывать программный код и запускать всё самой, а достаточно было поместить текст в окошко и нажать на кнопку.

Заранее благодарю за помощь.


Ответы (4 шт):

Автор решения: Алексей Белкин

Добавлю только к комментарию про .replace() еще то, чтобы она смогла это запускать на компьютере - Вам придется делать самораспаковывающий архив (типа exe) - тогда действительно ничего не надо будет устанавливать на ПК (даже python).

А если не хотите заморачиваться, то можно даже без Tkinter и оставить все в виде командной строки. Просто скажите, чтобы вставить в консоль - достаточно просто правой клавишей нажать. Этот текст вы через .replace() вернете и она сможет его прочитать.

→ Ссылка
Автор решения: ПИТОНИСТ версия-3-8

Вам нужен такой код?

Вариант с графикой:

from tkinter import *
tk=Tk()
def f():
    text=l.get()
    print(text.replace(' ', ''))
l = Entry(tk, width=40)
l.pack()
Button(tk, text='Обработать!', command=f).pack()

Скриншот 1

Вариант без графики в одну строку (запускается через командную строку cmd):

print('Обработанный текст: '+input('Введите ваш текст --> ').replace(' ', ''))

Cкриншот 2

→ Ссылка
Автор решения: S. Nick

Прежде чем запустить мой пример, убедитесь, что вы установили PyQt5

pip install PyQt5
pip install pyqt5-tools

PyQt — реализация фреймворка Qt для языка Python.


import sys
from PyQt5.Qt import *


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        central_widget = QWidget()
        self.setCentralWidget(central_widget)        
        
        self.text_edit = QTextEdit()
        self.text_edit.setPlaceholderText(
            'Вставьте или наберите здесь текст.')
        self.text_edit_2 = QTextEdit()
        self.text_edit_2.setReadOnly(True)
        self.text_edit_2.hide()
        
        self.pointSize = 20
        self._font = self.font()
        self._font.setPointSize(self.pointSize)
        self._font.setFamily("Arial")
        self.text_edit.setFont(self._font)
        self.text_edit_2.setFont(self._font)
        
        self.fonts = QFontComboBox(self)            
        self.fonts.setCurrentFont(self._font)
        self.fonts.currentFontChanged.connect(self.handleFontChanged)

        self.sb_font_size = QSpinBox()
        self.sb_font_size.setRange(10, 40)
        self.sb_font_size.setValue(self.pointSize)
        self.sb_font_size.valueChanged.connect(self._on_font_size_changed)

        self.pushButton = QPushButton('Показать текст без пробелов.')
        self.pushButton.clicked.connect(self.on_clicked)

        self.layout = QGridLayout(central_widget)
        self.layout.addWidget(self.fonts, 0, 0, 1, 1)
        self.layout.addWidget(self.sb_font_size, 0, 1, 1, 1)
        self.layout.addWidget(self.text_edit, 1, 0, 1, 2 )
        self.layout.addWidget(self.text_edit_2, 2, 0, 1, 2 )
        self.layout.addWidget(self.pushButton, 3, 0, 1, 2 )
        self.text_edit.setFocus()

    def _on_font_size_changed(self, value):
        self.pointSize = value
        self._font = self.text_edit.font()
        self._font.setPointSize(self.pointSize)
        self.text_edit.setFont(self._font)
        self.text_edit_2.setFont(self._font)
        
    def on_clicked(self):
        if self.pushButton.text() == 'Показать текст без пробелов.':
            text = self.text_edit.toPlainText().replace(' ', '')
            text = text.replace('\n', '')
            self.text_edit_2.setPlainText(text)
            self.text_edit.hide()
            self.text_edit_2.show()
            self.pushButton.setText('Показать обычный текст.')
        else:
            self.text_edit_2.hide()
            self.text_edit.show()
            self.pushButton.setText('Показать текст без пробелов.')        
        
    def handleFontChanged(self, font):
        font.setPointSize(self.pointSize)
        self.text_edit.setFont(font) 
        self.text_edit_2.setFont(font)        


if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = MainWindow()
    w.resize(700, 500)
    w.show()
    sys.exit(app.exec())

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка
Автор решения: Brainsluggy

Решение при помощи "replace":

Текст = 'Это текст, у которого исчезнут пробелы!'
Текст.replace('', '')

А для того, чтобы сделать окно, используйте библиотеки для интерфейса. Например, tkinter или pysimplegui.

→ Ссылка