
Вопрос задан 25.06.2023 в 06:28.
Предмет Информатика.
Спрашивает Валиева Катя.
Помогите пожалуйста написать программу на Python На вход программы поступает строка текста, в
которой могут встречаться:— прописные и строчные (т.е. большие и маленькие) латинские буквы;— пробелы;— знаки препинания: точка, запятая, восклицательный и вопросительный знак;— символ –, обозначающий в некоторых случаях тире, а в некоторых — дефис.Слово — это последовательность подряд идущих латинских букв и знаков дефис, ограниченная с обоих концов. В качестве ограничителей могут выступать начало строки, конец строки, пробел, знак препинания, тире. Тире отличается от дефиса тем, что слева и справа от знака дефис пишутся буквы, а хотя бы с одной стороны от тире идет либо начало строки, либо конец строки, либо пробел, либо какой-либо знак препинания, либо еще одно тире.Напишите программу, определяющую, сколько слов в данной строке текста.Входные данные:Вводится строка длиной не более 200 символов.Выходные данные:Выведите одно число — количество слов, которые содержатся в исходной строке.Sample Input 1: Hello , world!Sample Output 1: 2Sample Input 2: www.olympiads.ruSample Output 2: 3

Ответы на вопрос

Отвечает Турчина Ксюша.
def CountWords(S):
cnt = 0
flag = 'new' # переменная flag показывает, принадлежит ли следующий символ тому-же слову, или новому
for elem in S:
if (97 <= ord(elem) <= 122 or 65 <= ord(elem) <= 90) and flag == 'new':
flag = 'same'
cnt += 1
if (ord(elem) < 97 or ord(elem) > 122) and (ord(elem) < 65 or ord(elem) > 90):
flag = 'new'
return cnt
print(CountWords(input()))



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи вы можете использовать регулярные выражения в Python. Вот программа, которая считает количество слов в заданной строке:
pythonimport re
def count_words(input_string):
# Используем регулярное выражение для поиска слов
# Слово - это последовательность букв и дефисов, ограниченная с обоих концов пробелом, знаками препинания или началом/концом строки
# Мы используем \w+ для поиска последовательности букв (включая дефисы)
# (?<![a-zA-Z-]) и (?![a-zA-Z-]) используются для проверки, что слово не начинается и не заканчивается буквой или дефисом
pattern = r'(?<![a-zA-Z-])\w+(?![a-zA-Z-])'
# Используем функцию findall для поиска всех совпадений с регулярным выражением в строке
matches = re.findall(pattern, input_string)
# Возвращаем количество найденных слов
return len(matches)
# Чтение входных данных
input_string = input()
# Вызываем функцию и выводим результат
print(count_words(input_string))
Вы можете использовать эту программу, чтобы подсчитать количество слов в строках, как указано в вашем примере ввода и вывода.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili