Модификация кода для поиска с помощью регулярок

Как можно улучшить код, чтобы генерировались предложения:

  • начинались в заглавной буквы
  • чтобы не начиналось со слова со знаком пунктуации (hello.)
  • в конце предложения всегда был ?, ! или точка
  • предложение 5 слов

Часть моего кода:

while sentence_count != 0:
    generated_sentence = []
    current_word = random.choice(text1)
    generated_sentence.append(current_word)
    count = 9
    while count != 0:
        next_word = Counter(head_tail[current_word]).most_common(1)[0][0]
        generated_sentence.append(next_word)
        current_word = next_word
        count -= 1
    print(" ".join(generated_sentence))
    sentence_count -= 1```

Текст беру из инпута. Придумала две регулярки, но не знаю, куда и как их поставить в код. 
r'^[A-Z].*[^.?!]$'
(r'.+[.?!]$', generated_sentence[-1]) или (generated_sentence[-1][-1] in '.?!')

Ответы (1 шт):

Автор решения: moondust

Было бы неплохо написать всю задачу и поделиться полным кодом, а не просто предоставить вырванный кусок. Вот небольшой код, который просто перемешивает все слова в списке и выводит полученный текст

import random

words = ['hello', 'hi', 'friend', 'dear', 'my', 'world', 'human']
ending = ['.', '!', '?']
random.shuffle(words)
words[0] = words[0].title()
print(' '.join(words), random.choice(ending), sep='')
→ Ссылка