我试图使用random
模块在python中获得随机工作。我的职能如下:
import random
word_file = "/usr/share/dict/words"
WORDS = open(word_file).read().splitlines()
def get_random_word(max_length=None):
word = random.choice(WORDS)
print(word)
if not max_length:
return word
if len(word) > max_length:
get_random_word(max_length)
return word
当我在ipython
控制台中导入此函数并作为get_random_word(max_length=5)
运行时,我得到以下结果:
Latasha's
Hammond's
evacuated
aviary
misconducted
airfare's
controllable
unduly
gaunt
Out[32]: "Latasha's"
正如您从输出中看到的,函数会调用自身,直到找到长度小于5的单词。但最后它返回第一个随机单词。我的功能有什么问题
我认为您的代码可以工作,您根本不需要这一行
return word
,也不需要在print内部调用get_random_word
(如果需要的话)这是一个简单的递归错误。变量字的值不会通过递归调用保留。您必须指定返回值
您没有在函数中指定返回值
应该是:
相关问题 更多 >
编程相关推荐