Вопрос задан 25.06.2023 в 06:28. Предмет Информатика. Спрашивает Валиева Катя.

Помогите пожалуйста написать программу на Python На вход программы поступает строка текста, в

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Турчина Ксюша.

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

python
import 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))

Вы можете использовать эту программу, чтобы подсчитать количество слов в строках, как указано в вашем примере ввода и вывода.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос