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