Вопрос задан 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 # Ввод строки input_str = input() # Регулярное выражение для поиска слов pattern = r'\b[a-zA-Z]+(?:-[a-zA-Z]+)*\b' # Используем регулярное выражение для поиска слов в строке matches = re.findall(pattern, input_str) # Выводим количество найденных слов print(len(matches))

Примеры ввода и вывода для вашего задания:

yaml
Sample Input 1: Hello , world! Sample Output 1: 2 Sample Input 2: www.olympiads.ru Sample Output 2: 3

Этот код использует регулярное выражение, которое ищет последовательности латинских букв, возможно с дефисами между ними, и считает их как слова.

0 0

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

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

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

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