• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

Приветствую всех читателей!

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

Для начала импортируем модуль 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

Grey Team
20.07.2016
662
763
BIT
58
Всё это здорово! Но зачем так заморачиваться когда есть Word
 

explorer

Platinum
05.08.2018
1 080
2 472
BIT
0
Всё это здорово! Но зачем так заморачиваться когда есть Word

Да практически на любую тему есть куча программ. И делая программы на разную тематику, просто развиваешь свои навыки, ведь приходится что-то придумывать, что-то вносить своё, нужно уметь больше, чем 'hello world' :)
Да и не делает так Word, у него более широкие задачи.

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

valerian38

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

explorer

Platinum
05.08.2018
1 080
2 472
BIT
0
Обновил скрипт, добавил подсчёт количества строк в тексте

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')
 

init_error

Green Team
07.06.2020
16
11
BIT
0
Вот люблю я подобные "скрипты", коротко, понятно и в конце концов скрипт действительно полезный, ибо word'ом не пользуюсь, как упоминал @valerian38 ,так как надобности в этой проги нет, а лезть в гугл чтобы искать сайт с таким функционалом, да еще и укороченным, не спасибо, а за скрипт плюсик ^_^
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!