【发布时间】:2019-12-26 06:25:55
【问题描述】:
我正在尝试创建一个程序,该程序将采用两组随机整数,并根据这两组整数的结果打印一条语句。但是,当我调用该方法时,我要么收到“无”,要么收到“超出最大递归深度”的错误消息。我似乎无法弄清楚如何在这些方法中构建我的 return 语句,以使其正常工作。
def genre(a,b):
genreType = random.randint(a,b)
if genreType == '1':
genreType = "Fantasy"
return genre()
elif genreType == '2':
genreType = "Sci-Fi"
return genre()
def medium():
mediumType = random.randint(1,2)
if mediumType == '1':
genre = genre(1,2)
print("Play a " + genre + "game")
return medium()
elif mediumType == '2':
genre = genre(1,2)
print("Watch a " + genre + "anime")
return medium()
【问题讨论】:
-
为什么要递归呢?为什么还要两个函数?
-
您正在使用
mediumType = random.randint(1,2)生成 int 值并比较字符串值if mediumType == '1',因此无限循环在没有任何返回语句的情况下运行。 -
这些代码行存在多个问题。 @VikasGautam 已经分享了一个。另外,genre() 方法在内部调用它时接受两个参数而不提供任何参数。