擅长:python、mysql、java
<p>您的<code>return</code>语句缩进太多。后退一级:</p>
<pre><code>def generate(cfd, word = 'the', num = 5):
for i in range(num):
arr = [] # make an array with the words shown by proper count
for j in cfd[word]:
for k in range(cfd[word][j]):
arr.append(j)
#print(word, end=' ')
word = arr[int((len(arr))*random.random())] # choose the word randomly from the conditional distribution
return(word)
</code></pre>
<p>当您注释掉<code>return</code>并改用<code>print</code>语句时,<code>print</code>将为<code>for i in range(num)...</code>中的每个迭代调用<code>print</code>。这就是为什么你得到5个打印输出。在</p>