Word слова text word 3 print text print len word что она выведет

Задача: написать программу, которая принимает текст и выводит два слова: наиболее часто встречающееся и самое длинное.

TEXT = """Однажды, в студёную зимнюю пору
Я из лесу вышел; был сильный мороз.
Гляжу, поднимается медленно в гору
Лошадка, везущая хворосту воз.
И, шествуя важно, в спокойствии чинном,
Лошадку ведёт под уздцы мужичок
В больших сапогах, в полушубке овчинном,
В больших рукавицах... а сам с ноготок!
«Здорово, парнище!» — «Ступай себе мимо!» —
«Уж больно ты грозен, как я погляжу!
Откуда дровишки?» — «Из лесу, вестимо,
Отец, слышишь, рубит, а я отвожу».
(В лесу раздавался топор дровосека.) —
«А что, у отца-то большая семья?» —
«Семья-то большая, да два человека
Всего мужиков-то: отец мой да я...» —
«Так вон оно что! А как звать тебя?» — «Власом». —
«А кой тебе годик?» — «Шестой миновал...
Ну, мёртвая!» — крикнул малюточка басом,
Рванул под уздцы и быстрей зашагал...
На эту картину так солнце светило,
Ребёнок был так уморительно мал,
Как будто всё это картонное было,
Как будто бы в детский театр я попал.
Но мальчик был мальчик живой, настоящий,
И дровни, и хворост, и пегонький конь,
И снег до окошек деревни лежащий,
И зимнего солнца холодный огонь —
Всё, всё настоящее русское было,
С клеймом нелюдимой, мертвящей зимы,
Что русской душе так мучительно мило,
Что русские мысли вселяет в умы, —
Те честные мысли, которым нет доли,
Которым нет смерти —
В которых так много и злобы и боли,
В которых так много любви!"""

Мы вставили текст прямо в программу, записав ее в переменную TEXT при помощи оператора присваивания =.
Поскольку переменную с текстом изменять не планируется, ее следует считать константой и записывать название заглавными буквами.
При работе с большими объемами текстовой информации текст загружается из отдельного файла.
Встроенная функция open() по умолчанию открывает файл по указанному имени и пути к нему в режиме чтения.
Функция возвращает объект типа file, у которого есть методы open() и close().
При возникновении проблем с кодировкой ее можно указать при открытии файла.

txtfile = open("warandpeace.txt", encoding="utf-8")
TEXT = txtfile.read()
txtfile.close()

В третьей версии языка подобная операция делается с использованием ключевых слов with и as:

with open("warandpeace.txt", encoding="utf-8") as txtfile:
    TEXT = txtfile.read()

Количество слов легко подсчитать при помощи метода split().
Количество символов – длина строки, полученной при сложении всех слов.

words = TEXT.split()
print(len(words)) # Вывести на экран количество слов
print(len("".join(words))) # Вывести на экран количество символов
wordsdict = {}
for word in words:
    word = word.lower().strip('"').strip("(").strip("!").strip("«").rstrip("...»").strip(",")
    if word not in wordsdict:
        wordsdict[word] = 1
    else:
        wordsdict[word] = wordsdict[word] + 1

wordslist = sorted(wordsdict.items(), key=lambda x: x[1], reverse=True)
print(wordslist)

longest = ""
wordsfreq = []
for word in wordsdict:
    wordsfreq.append((word, wordsdict[word]))
    if len(word) > len(longest):
        longest = word

wordsfreq.sort(key=lambda row: row[1], reverse=True)
print(wordsfreq == wordslist)

dct = {}
for word in wordsfreq:
    dct.update({word[0]: word[1]})
print(dct)

Медианное среднее

import statistics as st

TEXT = """Здесь текст для анализа.
Add text here.
"""

word_lens = []
for word in TEXT.split():
    word_lens.append(len(word))

median_val = st.median(word_lens)
mean_val = st.mean(word_lens)
print("Медианное среднее:", median_val, "Среднее:", mean_val, "Разница:", median_val - mean_val)

Ссылки

  • Закон Ципфа
    – эмпирическая закономерность распределения частоты слов естественного языка: если все слова языка (или просто достаточно длинного текста) упорядочить по убыванию частоты их использования, то частота n-го слова в таком списке окажется приблизительно обратно пропорциональной его порядковому номеру n.
  • Анализ текста онлайн
  • Текстовая обработка в языке Python
  • Regexp и Python: извлечение токенов из текста
  • Обработка текста
  • NLP – это весело! Обработка естественного языка на Python
  • Библиотека textwrap

Условие

Дан текст: в первой строке записано число строк, далее идут сами строки. Определите, сколько различных слов содержится в этом тексте.

Словом считается последовательность непробельных символов идущих подряд, слова разделены одним или большим числом пробелов или символами конца строки.

s_text = set()

for i in range(int(input().rstrip())):

s = {j for j in (str(input()).split())}

s_text = s_text.union(s)

print(len(s_text))

Решение разработчиков

1
2
3
4
5
words = set()
for _ in range(int(input())):
    words.update(input().split())
print(len(words))

Случайные решения участников

Владимир Щеглов

1
2
3
4
5
6
7
= int(input())
= set()
for i in range(n):
    a = set(input().split())
    b |= a
print(len(b))

Владимир Шакиров

1
2
3
4
5
= int(input())
words = set()
[words.update( set(input().split())) for i in range(n)]
print(len(words))

Olga Sed

1
2
3
4
5
6
= int(input())
sset = set()
for i in range(n):
    sset = sset.union(set(input().split()))
print(len(sset))

Елена Горохова

1
2
3
4
5
6
7
8
n=int(input())
b=set()
for i in range(n):
    a=input().split(" ")
    for el in a:
        b.add(el)
print(len(b))

Andrey Platonov

1
2
3
4
5
words = set()
for i in range(int(input())):
    words.update(input().split())
print(len(words))

ElatedMIndGjs

1 / 1 / 0

Регистрация: 17.05.2021

Сообщений: 5

1

«Программа подсчета слов»

17.05.2021, 01:11. Показов 2316. Ответов 12

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Вопрос по статье с сайта ( https://metanit.com/python/tutorial/5.4.php )
«Программа подсчета слов»

Есть код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import os
 
 
def get_words(filename):
 
    with open(filename, encoding="utf8") as file:
        text = file.read()
    text = text.replace("n", " ")
    text = text.replace(",", "").replace(".", "").replace("?", "").replace("!", "")
    text = text.lower()
    words = text.split()
    words.sort()
    return words
 
 
def get_words_dict(words):
    words_dict = dict()
 
    for word in words:
        if word in words_dict:
            words_dict[word] = words_dict[word] + 1
        else:
            words_dict[word] = 1
    return words_dict
 
 
def main():
    filename = input ("Введите путь к файлу: ")
    if not os.path.exists(filename):
        print ("Указанный файл не существует")
    else:
        words = get_words(filename)
        words_dict = get_words_dict(words)
        print ("Кол-во слов: %d" % len(words))
        print ("Кол-во уникальных слов: %d" % len(words_dict))
        print ("Все использованные слова:")
        for word in words_dict:
             print(word.ljust(20), words_dict[word])
 
 
if __name__ == "__main__":
    main()

Объясните пожалуйста, как работает данный цикл?

Python
1
2
3
4
5
6
7
8
9
def get_words_dict(words):
    words_dict = dict()
 
    for word in words:
        if word in words_dict:
            words_dict[word] = words_dict[word] + 1
        else:
            words_dict[word] = 1
    return words_dict

В статье написано: «Получаем словарь из слов, где ключ — это уникальное слово, а значение — количество вхождений данного слова в тексте.»

Каким образом мы обращаемся к пустому словарю, перебирая в нем слова?
Когда мы перебираем словарь, первое слово является ключом для второго. Тогда каким образом работает алгоритм?
Каким образом мы получаем «значение = количество вхождений данного слова в тексте.», если значение = следующему слову в тексте?

Буду благодарен за подробный ответ.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

17.05.2021, 01:11

Ответы с готовыми решениями:

Создать родительский класс «Склад» и 3 подкласса («принтеры»,» сканеры», «ксероксы»)
Начните работу над проектом «Склад оргтехники». Создайте класс, описывающий склад. А также класс…

Дан список станций желтой ветки московского метро: line = [«Третьяковская», «Марксистская», «Площадь Ильича», «Авиамотор
Дан список станций желтой ветки московского метро:
line =
Считайте, что движение происходит от…

Программа на Python «» репетитор по английскому «»
Напишите программу » репетитор по английскому ». Возможен выбор режима перевод с английского на…

Написать программу проверки правильности написания сочетаний «жи», «ши», «ча», «ща»
Помогите пожалуйста написать программу проверки правильности написания сочетаний "жи", "ши", "ча",…

12

1 / 1 / 0

Регистрация: 17.05.2021

Сообщений: 5

17.05.2021, 11:01

 [ТС]

2

upp



0



Fudthhh

Модератор

Эксперт Python

2741 / 1535 / 504

Регистрация: 21.02.2017

Сообщений: 4,126

Записей в блоге: 1

17.05.2021, 11:18

3

ElatedMIndGjs,

Цитата
Сообщение от ElatedMIndGjs
Посмотреть сообщение

Каким образом мы обращаемся к пустому словарю, перебирая в нем слова?

Чаво? Ты передаешь в функцию список слов, проходишься по этому списку циклом, проверяешь есть ли в словаре ключ который равен текущему слову, если да, то увеличиваешь на 1 значение, иначе создаешь ключ со значением один, по сути написано очень криво.

Добавлено через 3 минуты

Python
1
2
3
4
5
6
7
def get_words_dict_2(words):
    words_dict = {}
    for word in words:
        if word not in words_dict:
            words_dict[word] = 0
        words_dict[word] += 1
    return words_dict



0



Автоматизируй это!

Эксперт Python

6740 / 4298 / 1162

Регистрация: 30.03.2015

Сообщений: 12,641

Записей в блоге: 29

17.05.2021, 11:19

4

Цитата
Сообщение от ElatedMIndGjs
Посмотреть сообщение

Каким образом мы обращаемся к пустому словарю, перебирая в нем слова?

ну это он в начале пустой, а потом мы начинаем в него совать пары ключ значение в стиле слово:1

Цитата
Сообщение от ElatedMIndGjs
Посмотреть сообщение

первое слово является ключом для второго.

нет. Там работает так —
слово есть в словаре? если нет то создать слово:1
если есть то берем число которое в значении у данного слова и увеличиваем его на 1, то есть будет слово:2

Цитата
Сообщение от ElatedMIndGjs
Посмотреть сообщение

Каким образом мы получаем «значение = количество вхождений данного слова в тексте.», если значение = следующему слову в тексте?

именно вышеописанным. Ключ -слово, значение -число (количесто вхождений)!



0



КулХацкеръ

17.05.2021, 11:25

Не по теме:

Welemir1, как же ты хорош! Просто и понятно разжевал. Я так не умею, мне проще кинуть код, чем объяснять что-то…



0



Автоматизируй это!

Эксперт Python

6740 / 4298 / 1162

Регистрация: 30.03.2015

Сообщений: 12,641

Записей в блоге: 29

17.05.2021, 11:31

6

КулХацкеръ,
ты просто в теме, потому кажется понятно. Надо подождать топикстартера — понял ли он?



0



1 / 1 / 0

Регистрация: 17.05.2021

Сообщений: 5

17.05.2021, 12:19

 [ТС]

7

Ну я примерно понял.
Единственный оставшийся вопрос: как переменная «words_dict = dict()» получает наш список слов?
Т.е. мы просто создали пустой словарь и он автоматически наполнился списком слов, потому что в параметре функции написано «words»?



0



Автоматизируй это!

Эксперт Python

6740 / 4298 / 1162

Регистрация: 30.03.2015

Сообщений: 12,641

Записей в блоге: 29

17.05.2021, 13:01

8

Цитата
Сообщение от ElatedMIndGjs
Посмотреть сообщение

Ну я примерно понял.

нет, не понял, к сожалению

Цитата
Сообщение от ElatedMIndGjs
Посмотреть сообщение

Единственный оставшийся вопрос: как переменная «words_dict = dict()» получает наш список слов?

не получает, он ПУСТОЙ! мы в цикле по 1 слову туда суем (но если слово уже есть то просто инкрементим переменную)

Цитата
Сообщение от ElatedMIndGjs
Посмотреть сообщение

Т.е. мы просто создали пустой словарь и он автоматически наполнился списком слов, потому что в параметре функции написано «words»?

нет! у нас есть цикл! может бросить пока этот сайт(метанит) и взять книгу? тема -циклы, функции, словари



1



Fudthhh

17.05.2021, 13:10

Не по теме:

Welemir1, отправь Лутца уже читать его, тут только он поможет.



0



1 / 1 / 0

Регистрация: 17.05.2021

Сообщений: 5

17.05.2021, 13:26

 [ТС]

10

А все я понял. Цикл сам добавляет по одному слову-номеру в словарь.

1)Цикл перебирает слова из списка.
2)Каждое слово из списка на первый раз попадает в «else». Ему присваивается значение 1
3)Если это слово попадется еще раз, ему присваивается значение +1 и т.д.



1



Автоматизируй это!

Эксперт Python

6740 / 4298 / 1162

Регистрация: 30.03.2015

Сообщений: 12,641

Записей в блоге: 29

17.05.2021, 13:27

11

Лучший ответ Сообщение было отмечено ElatedMIndGjs как решение

Решение

ElatedMIndGjs, бинго!



1



1 / 1 / 0

Регистрация: 17.05.2021

Сообщений: 5

17.05.2021, 13:28

 [ТС]

12

Спасибо!



0



Fudthhh

17.05.2021, 15:11


    «Программа подсчета слов»

Не по теме:

Welemir1, я написал тоже самое, а он прочитав задал кучу вопросов, и разбил мой ответ на список(



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

17.05.2021, 15:11

Программа подсчёта слов
Требуется написать программу, которая будет считать количество слов в введённом тексте (желательно…

Программа для подсчета символов и слов в тексте
Добрый вечер
Я давно не занимался питоном, а тут мне попалось одно задание:

В идеале мне нужно…

Определить количество слов в строке, которые начинаются на букву «b»
Ввести из консоли строку. Определить количество слов в этой строке, которые начинаются на букву "b"…

Найти количество слов,которые содержат ровно 3 буквы «А»
Доброго времени суток!!!!Ребята,прошу помощи в задачах на Питоне!!завал полный!!!может кто…

Дана строка, содержащая русскоязычный текст. Найти количество слов, начинающихся с буквы «а»
Дана строка, содержащая русскоязычный текст. Найти количество слов, начинающихся с буквы "а". …

Дана строка, содержащая русскоязычный текст. Найти количество слов, начинающихся с буквы «е»
Дана строка, содержащая русскоязычный текст. Найти количество слов,
начинающихся с буквы "е".

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

13

Программирование на языке
Python.

Практическая работа № 6.
Обработка символьных строк

Задание
1. Две строки

Составьте
программу, которая предлагает ввести с клавиатуры две строки
a
и
b, а затем:

1.     
соединяет
их в новую строку
c
и выводит результат

2.     
определяет
количество символов в новой строке
c

3.     
выводит
на экран более длинную из строк
a
и
b

4.     
выводит
на экран большую из строк
a
и
b

Задание 2. Составление
слов

Составьте
программу, которая из слова ИФОРМАТИКА получает слова:

1.     
ФОРМА

2.     
ФИРМА

3.     
МАК

Задание
3.  Работа со словами строки

Дана
строка, состоящая из слов, разделенных пробелами.  Вывести самое длинное слово
в строке количество букв в нем.

Задание
4.  Число слов в строке

Дана
строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней слов.

Задание 5. 
Замена букв

Дана
строка, состоящая из слов, разделенных пробелами.  Заменить строчные буквы, а
на б и прописные A на B. Вывести получившуюся строку и количество замененных
букв в ней.

Задание
6. Число слов в строке

Дана
строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней
слов.

Задание
7. Число слов, начинающихся на букву
R

Дана
строка, состоящая только из заглавных латинских букв и пробелов. Словом,
назовём последовательность символов, не содержащую пробелов и ограниченную
пробелами, началом или концом строки. Требуется найти количество слов в
заданной строке, которые начинаются на букву «R».

Задание
8.  Удаление символов

Дана
строка. Удалите из этой строки все символы*.

Задание 9.
Две половинки

Дана строка.
Разрежьте ее на две равные части (если длина строки — четная, а если длина
строки нечетная, то длина первой части должна быть на один символ больше).
Переставьте эти две части местами, результат запишите в новую строку и выведите
на экран.

Задание 10.
Переставить два слова

Дана строка, состоящая
ровно из двух слов, разделенных пробелом. Переставьте эти слова местами.
Результат запишите в строку и выведите получившуюся строку.

Задание 11.
ФИО

С
клавиатуры вводится строка, содержащая имя, отчество и фамилию человека, например,
Петров Михаил Николаевич

Каждые
два слова разделены одним пробелом, в начале строки пробелов нет. В результате
обработки должна получиться новая строка, содержащая фамилию и инициалы: М.Н. Петров

Задание 12.
Поиск в файле строк, содержащих определенные значения

В
текстовый файл построчно записаны фамилия имя учащихся класса и его оценка за
контрольную работу. Вывести на экран всех учащихся, чья оценка меньше 4 баллов
и посчитать средний балл по классу.

Варианты решения к некоторым
задачам

Задание
3.  Работа со словами строки

Дана
строка, состоящая из слов, разделенных пробелами.  Вывести самое длинное слово
в строке количество букв в нем.

Код
Python

s = input()

s = s.split()

count = 0

for i in s:

    if len(i)>count:

        count = len(i)

        word = i   

print(word)

print(len(word))

Задание
6. Число слов в строке

Дана
строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней
слов.

Код
Python

print(input().count(' ') +
1)

# или
вот так

s = input()

s =
s.split()

n =
len(s)

print(n)

Задание 7. Число слов, начинающихся
на букву
R

Дана
строка, состоящая только из заглавных латинских букв и пробелов. Словом,
назовём последовательность символов, не содержащую пробелов и ограниченную пробелами,
началом или концом строки. Требуется найти количество слов в заданной строке,
которые начинаются на букву «R».

Код
Python

S =
input().split()

c = 0

for
each in S:

   
if each[0] == 'R':

       
c += 1

print(c)

Задание 8. 
Удаление символов

Дана
строка. Удалите из этой строки все символы*.

print(input().replace(‘*’, »))

Задание 9.
Две половинки

Дана строка.
Разрежьте ее на две равные части (если длина строки — четная, а если длина
строки нечетная, то длина первой части должна быть на один символ больше).
Переставьте эти две части местами, результат запишите в новую строку и выведите
на экран.

Код
Python

s = input()

print(s[(len(s) +
1) // 2:] + s[:(len(s) + 1) //
2])

Задание
10. Переставить два слова

Дана строка, состоящая
ровно из двух слов, разделенных пробелом. Переставьте эти слова местами.
Результат запишите в строку и выведите получившуюся строку.

Код
Python

s = input()

word1 = s[:s.find(‘ ‘)]

word2 = s[s.find(‘ ‘) + 1:]

print(word2
+

+ word1)

Задание 11.
ФИО

С
клавиатуры вводится строка, содержащая имя, отчество и фамилию человека,
например, Михаил Николаевич Петров

Каждые
два слова разделены одним пробелом, в начале строки пробелов нет. В результате
обработки должна получиться новая строка, содержащая фамилию и инициалы: Петров
М.Н.

Код
Python

print ( «Введите имя, отчество и фамилию:» )

s = input()

fio = s.split()

s = fio[1][0] + «.» + fio[2][0] + «.» +
» » + fio[0]

print(s)

Задание
12. Поиск в файле строк, содержащих определенные значения

В
текстовый файл построчно записаны фамилия имя учащихся класса и его оценка за
контрольную работу. Вывести на экран всех учащихся, чья оценка меньше 4 баллов
и посчитать средний балл по классу.

Код
Python

f = open(«class10.txt»)

sum = 0

n = 0

for s in f:

    s = s.split()

    d = int(s[2])

    sum +=  d

    n += 1

    if d < 4:

        print(s[0], s[1] , s[2])

f.close()

print(‘Средний балл %.2f’
%(sum/n))

На уроке «Python. Взлом шифров. продолжение-2» я обещал рассказать о работе с текстом. Начнем со строк. Строки в Python-е, как и в PHP и JavaScript, могут заключаться в двойные или одинарные кавычки:

s1="Это строка"
s2='Это тоже строка'

print (s1)
print (s2)

Это позволяет создать строки с кавычками внутри (либо с апострофами внутри):

s1="Внутри кавычек могут быть 'апостофы' ''''"
s2='А внутри апостофов "кавычки"   """ '

print (s1)
print (s2)

Еще есть такая фича, как тройные кавычки. Они позволят задать многострочный стринг:

s="""Это первая строка
а это вторая
и третья
и четвертая"""

print (s)

Другой способ задания многострочного текста — это использование символов «n», хотя первый способ зачастую более наглядный. Вот этот код выполнит тоже самое:

s="Это первая строкаnа это втораяnи третьяnи четверая"
print (s)

Строки можно складывать (конкатенация):

s="Hello "+"word"

print (s)

Можно умножить строку на число, в этом случае она дублируется столько раз, на сколько ее умножили:

s="Hello "*3
print (s)

Но при попытке умножить на дробное число выйдет ошибка:

«Traceback (most recent call last):
File «D:/Самообразование/Python работа с тектом/text6.py», line 3, in <module>
s=»Hello «*3.1
TypeError: can’t multiply sequence by non-int of type ‘float’»

Аналогично не «прокатит» и умножение строки на строку, так как данная операция не имеет смысла.

Кстати, при умножении строки на число от перестановки множителей произведение не меняется:

s=3*"Hello "
print (s)

Такой код выдаст тоже самое, что и предыдущий. А вот со сложением данный номер не пройдет, так как там просто  вторая строка с конца присоединяется к перовой.

К символам строки можно обращаться как к элементам массива, счет при этом начинается с нуля. Например, вот такой код вернет запятую:

s="Hello, world! "
print (s[5])

Можно использовать срез. Например, вот такая программа вернет «lo,»:

s="Hello, world! "
print (s[3:7])

Самый прикол, что можно получить каждый второй, каждый третьи и так далее символ из среза, например, каждый второй:

s="Hello, world! "
print (s[1:10:2])

Такая программа вернет строку: «el,wr», а вот такая:

s="Hello, world! "
print (s[1:10:3])

Вернет: «eow».

А еще в срезе могут быть отрицательные значения, это значит, что брать надо с конца. Например, если мы хотим получить предпоследний символ, мы можем написать [-2]. А вот если обратиться так: [:-2] то программа вернет все символы, кроме последних двух.

Теперь пара практических задач.

Задача 1. Дана строка со списком слов, разделенных пробелами. Надо найти самое длинной слово.

Решение. Вспомним урок Python. Взлом шифров. Продолжение, где для распарсиваняи строки мы использовали split. Тут поступим точно так же, распарсим строку, превратив ее в список, переберем все элементы списка, используя классический алгоритм поиска максимума:

s="а на к в игра слово параллелепипед велосипед в не у компьютер"
ls=s.split(" ")
max_len=0
word=""
for el in ls:
    word_len=len(el)
    if word_len>max_len:
        max_len=word_len
        word=el

print("Слово с максимальной длиной: "+word)

Программа вернет «Слово с максимальной длиной: параллелепипед».

Задача 2. Необходимо анализировать сигнал. Этот сигнал состоит из цифр от 0 до 9 и знака #. Две и более идущие цифры подряд обозначают эту цифру. Если цифра должна повторяться, то это обозначается двумя или более знаками # (предыдущая цифра повторяется). Одинарная цифра или знак # считается помехой и не должен учитывается. Например, сочетание «12233##577766###» обозначает «233766».

Решение. Будем анализировать строку сигнала в цикле, меняя режим цикла, если идут два и более символа подряд. Последний символ и последнюю цифру запоминаем. Символ запоминаем чтобы отследить, что иду два и более подряд, а цифру для того, чтобы знак «#» удвоил ее.

Вот такая получается программа:

source_str="12233##577766###"
last_digit=""
last_simbol=""
dist_str=""
str_len=len(source_str)
i=0
is_wait=True
while i<str_len:
    simb=source_str[i]
    if simb==last_simbol:
        if not is_wait:
            if simb=="#":
                dist_str=dist_str+last_digit
            else:
                dist_str=dist_str+simb
                last_digit=simb
            is_wait=True
    else:
        is_wait=False
        last_simbol=simb
    i=i+1

print(dist_str)

Понравилась статья? Поделить с друзьями:
  • Word слияние сохранение в отдельные файлы
  • Word слияние слов в
  • Word слияние с картинками
  • Word слияние при печати
  • Word слияние полей документа