Как написать программу, которая убирает пробелы?
Одна моя пожилая знакомая боится деменции. Я предложил ей идею: взять небольшой текст (пару-тройку абзацев), удалить из него все пробелы и попробовать прочесть.
Например, абзац, начинающийся словами:
В тридевятом царстве, в тридесятом государстве. ...
после обработки такой программой начинался бы так:
Втридевятомцарстве,втридесятомгосударстве....
Как написать такую программу на Python-3 ?
И как сделать так, чтобы моя знакомая смогла с этой программой работать?
То есть чтобы ей не пришлось открывать программный код и запускать всё самой, а достаточно было поместить текст в окошко и нажать на кнопку.
Заранее благодарю за помощь.
Ответы (4 шт):
Добавлю только к комментарию про .replace() еще то, чтобы она смогла это запускать на компьютере - Вам придется делать самораспаковывающий архив (типа exe) - тогда действительно ничего не надо будет устанавливать на ПК (даже python).
А если не хотите заморачиваться, то можно даже без Tkinter и оставить все в виде командной строки. Просто скажите, чтобы вставить в консоль - достаточно просто правой клавишей нажать. Этот текст вы через .replace() вернете и она сможет его прочитать.
Вам нужен такой код?
Вариант с графикой:
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()
Вариант без графики в одну строку (запускается через командную строку cmd):
print('Обработанный текст: '+input('Введите ваш текст --> ').replace(' ', ''))
Прежде чем запустить мой пример, убедитесь, что вы установили 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())
Решение при помощи "replace":
Текст = 'Это текст, у которого исчезнут пробелы!'
Текст.replace('', '')
А для того, чтобы сделать окно,
используйте библиотеки для интерфейса. Например, tkinter или pysimplegui.



