Статья Считаем количество знаков в тексте

explorer

explorer

Red Team
05.08.2018
788
1 697
Приветствую всех читателей!

В сети много онлайн-сервисов для подсчёта слов с пробелами и без. Это может быть полезно при написании статей фрилансерами, когда есть задание на определённое количество знаков.
Но сегодня мы напишем небольшую программку, с бОльшим функционалом. Она также подсчитает количество слов, а самое главное, выведет сколько встречается каждый символ. Это очень полезно для расшифровки закодированных текстов - частотный анализ символов.

Для начала импортируем модуль pyperclip и вставим поясняющий текст.

Python:
import pyperclip

print('Скопируйте в буфер обмена текст')
print('-'*50)

input('Нажмите ENTER')
print('-'*50)
Потом вставим скопированный текст

Python:
s = pyperclip.paste()
Подсчитаем количество символов с пробелами, без пробелов, и количество слов.

Python:
n = len(s.split())
s = s.replace('\n', '')
s = s.replace('\r', '')
n1 = len(s)
s = s.replace(' ', '')
n2 = len(s)
Теперь сначала выведем скопированный текст

Python:
print('-'*50)
print(pyperclip.paste())
print('-'*50)
И в заключение вывод всех подсчётов

Python:
print('Количество символов с пробелами: '+str(n1))
print('Количество символов без пробелов: '+str(n2))
print('Количество слов: '+str(n))
print('Сколько раз встречается каждый знак:' + '\n' + '\n' "".join("%s - %s" % (i, s.count(i)) for i in sorted(set(s))))
И вот что у нас получилось

ot4et.png


Python:
# -*- coding:utf -8 -*-

import pyperclip

print('Скопируйте в буфер обмена текст')
print('-'*50)

input('Нажмите ENTER')
print('-'*50)

s = pyperclip.paste()
n = len(s.split())
s = s.replace('\n', '')
s = s.replace('\r', '')
n1 = len(s)
s = s.replace(' ', '')
n2 = len(s)

print('-'*50)
print(pyperclip.paste())
print('-'*50)
print('Количество символов с пробелами: '+str(n1))
print('Количество символов без пробелов: '+str(n2))
print('Количество слов: '+str(n))
print('Сколько раз встречается каждый знак:' + '\n' + '\n' "".join("%s - %s" % (i, s.count(i)) for i in sorted(set(s))))

input('\n' + 'Для выхода нажмите ENTER')

Программа выводит сначала спецсимволы, потом английские буквы, потом русские. Всё сортируется по алфавиту, что очень удобно.
До встречи! :)
 
valerian38

valerian38

Grey Team
20.07.2016
656
745
Всё это здорово! Но зачем так заморачиваться когда есть Word
 
explorer

explorer

Red Team
05.08.2018
788
1 697
Всё это здорово! Но зачем так заморачиваться когда есть Word
Да практически на любую тему есть куча программ. И делая программы на разную тематику, просто развиваешь свои навыки, ведь приходится что-то придумывать, что-то вносить своё, нужно уметь больше, чем 'hello world' :)
Да и не делает так Word, у него более широкие задачи.

У меня уже куча мелких скриптиков написана, на разные случаи, и я реально ими пользуюсь при необходимости. В общем и целом, это творчество, и мне нравится познавать что-то новое :cool:
 
  • Нравится
Реакции: Den11 и valerian38
valerian38

valerian38

Grey Team
20.07.2016
656
745
В общем и целом, это творчество, и мне нравится познавать что-то новое :cool:
Согласен! Без творчества нет движения вперёд. Если мозг не заставлять работать, то быстро деградируешь.
 
Последнее редактирование:
  • Нравится
Реакции: Den11
explorer

explorer

Red Team
05.08.2018
788
1 697
Обновил скрипт, добавил подсчёт количества строк в тексте

scrin.png


Python:
# -*- coding:utf -8 -*-

import pyperclip

print('Скопируйте в буфер обмена текст')
print('-'*50)

input('Нажмите ENTER')
print('-'*50)

s = pyperclip.paste()
line = s.count('\n') + 1
n = len(s.split())
s = s.replace('\n', '')
s = s.replace('\r', '')
n1 = len(s)
s = s.replace(' ', '')
n2 = len(s)


print('-'*50)
print(pyperclip.paste())
print('-'*50)
print('Количество символов с пробелами: '+str(n1))
print('Количество символов без пробелов: '+str(n2))
print('Количество строк: '+str(line))
print('Количество слов: '+str(n))
print('Сколько раз встречается каждый знак:' + '\n' + '\n' "".join("%s - %s" % (i, s.count(i)) for i in sorted(set(s))))

input('\n' + 'Для выхода нажмите ENTER')
 
Мы в соцсетях: