#python #random
#python #Случайный
Вопрос:
Я создал этот генератор случайных предложений, но мне было интересно, как я могу ограничить длину предложения.
from collections import defaultdict
import random
with open("Hannibal.txt") as f:
words = f.read().split()
word_dict = defaultdict(list)
for word, next_word in zip(words, words[1:]):
word_dict[word].append(next_word)
sentence = []
word = "Hannibal"
while not word.endswith("."):
sentence.append(word)
word = random.choice(word_dict[word])
...
sentence = " ".join(sentence) "."
print(sentence)
Ответ №1:
Самым простым способом было бы добавить счетчик в ваш цикл while следующим образом:
counter = 0
MAX_LENGTH = 30; # max 30 words per sentence
while not word.endswith(".") and counter < MAX_LENGTH:
sentence.append(word)
counter = counter 1
word = random.choice(word_dict[word])
...