from random import *
def Number(N):
if N>0:
return [ choice( [0,1] ) for i in range(N)]
else:
return ("Only Positive #'s!")
我如何以递归方式执行此操作?
我们说N=5
,因此每个#的[0,1,2,3,4]
将替换为0
或1
。我似乎无法以递归的方式绕过这个列表操作。
答案 0 :(得分:1)
这是一个选项:
from random import choice # don't use * imports
def Number_recursive(N):
if N < 0:
raise ValueError('N must be positive')
if N == 0:
return []
return [choice((0, 1))] + Number_recursive(N-1)
注意引发错误而不是返回字符串;这会更直接地告诉来电者出错了。