Нужно дописать код)

Katya

Новичок
Пользователь
Янв 3, 2021
16
0
1
Какие функции должна выполнять система?
1. вычисляет количество неповторяющихся (тех, что присутствуют в одном экземпляре)
слов в строке;
2. вычисляет количество уникальных (всех неповторяющихся и только по одному
экземпляру каждого повторяющегося) слов в строке;
3. вычисляет и выводит на экран частоту использования в строке слов,
которые встречаются больше, чем два раза;
4. находит в строке все знаки препинания (пробел, точка, запятая, вопросительный знак
и выводит на экран их количество в строке;
5. найти все числа, имеющиеся в строке, вывести их вместе с их количеством на экран
6. вычисляет количество предложений в строке
------------------------------------------------------------------
У меня получилось только это (почему-то не считает ?!, только .)
import collections
string = "I am a student of the third course. I like learn English. I live in Lviv"
print("Text: ", string [ : 100])
print("The number of sentences in line: ", len([i for i in string.split( ".")]) )
string = string.split()
print ("The number of words per line:", len(string))
a = set(string)
print("Unic words: ",a)
print("Number of unic words: ", len(a))
results = collections.Counter(string)
print(results)
input()
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 642
472
83
У меня получилось только это (почему-то не считает ?!, только .)
потому что в вашей строке их нет...

я добавил в вашу строку знак вопроса и восклицательный знак, и еще лишнее слово student, и набор цифр, так как у вас в строке их тоже не было, для теста, вроде работает...
код ниже
Python:
from collections import Counter

string = "I am a student student of the third course. I like learn English. I live in Lviv!? 1234436345."
string_a = string.split()
a = []
b = []
c = []

print('Вычисляет количество неповторяющихся (тех, что присутствуют в одном экземпляре) слов в строке')
for i in string_a:
    if string_a.count(i) == 1:
        a.append(i)
print('Элементы: ' + str(a))
print('Кол-во: ' + str(len(a)) + '\n')

print('Вычисляет количество уникальных (всех неповторяющихся и только по одному экземпляру каждого повторяющегося) '
      'слов в строке')
print('Элементы: ' + str(set(string_a)))
print('Кол-во: ' + str(len(set(string_a))) + '\n')

print('Вычисляет и выводит на экран частоту использования в строке слов, которые встречаются больше, чем два раза')
for i in set(string_a):
    if string_a.count(i) > 2:
        print('Элемент: ' + i + ', кол-во: ' + str(string_a.count(i)) + '\n')

print('Находит в строке все знаки препинания (пробел, точка, запятая, вопросительный знак) и выводит на экран их '
      'количество в строке')
for i in list(string):
    if not set(",.!?").isdisjoint(i):
        b.append(i)
print(Counter(b))
print()

print('Найти все числа, имеющиеся в строке, вывести их вместе с их количеством на экран')
for i in filter(str.isdigit, string):
    c.append(i)
print(Counter(c))
print()

print('Вычисляет количество предложений в строке')
print(b.count('.'))
 
Последнее редактирование:
  • Мне нравится
Реакции: Katya

Katya

Новичок
Пользователь
Янв 3, 2021
16
0
1
потому что в вашей строке их нет...

я добавил в вашу строку знак вопроса и восклицательный знак, и еще лишнее слово student, и набор цифр, так как у вас в строке их тоже не было, для теста, вроде работает...
код ниже
Python:
from collections import Counter

string = "I am a student student of the third course. I like learn English. I live in Lviv!? 1234436345."
string_a = string.split()
a = []
b = []
c = []

print('Вычисляет количество неповторяющихся (тех, что присутствуют в одном экземпляре) слов в строке')
for i in string_a:
    if string_a.count(i) == 1:
        a.append(i)
print('Элементы: ' + str(a))
print('Кол-во: ' + str(len(a)) + '\n')

print('Вычисляет количество уникальных (всех неповторяющихся и только по одному экземпляру каждого повторяющегося) '
      'слов в строке')
print('Элементы: ' + str(set(string_a)))
print('Кол-во: ' + str(len(set(string_a))) + '\n')

print('Вычисляет и выводит на экран частоту использования в строке слов, которые встречаются больше, чем два раза')
for i in set(string_a):
    if string_a.count(i) > 2:
        print('Элемент: ' + i + ', кол-во: ' + str(string_a.count(i)) + '\n')

print('Находит в строке все знаки препинания (пробел, точка, запятая, вопросительный знак) и выводит на экран их '
      'количество в строке')
for i in list(string):
    if not set(",.!?").isdisjoint(i):
        b.append(i)
print(Counter(b))
print()

print('Найти все числа, имеющиеся в строке, вывести их вместе с их количеством на экран')
for i in filter(str.isdigit, string):
    c.append(i)
print(Counter(c))
print()

print('Вычисляет количество предложений в строке')
print(b.count('.'))
Спасибо)
 

Форум IT Специалистов