Python递归,在两个整数之间打印值

时间:2015-05-18 04:40:03

标签: python recursion

我想以递归方式打印两个整数之间的所有整数,作为print_numbers函数的输入。

到目前为止,我已经得到了:

def print_numbers(start,stop):
    if start == stop:
        print(start)
    else:
        print(start)
        print(print_numbers(start + 1,stop))

但在致电print_numbers(1,5)时,我得到了:

1
2
3
4
5
None
None
None
None

我似乎无法弄清楚没有来自哪里。

2 个答案:

答案 0 :(得分:2)

当您致电print_between时,print_between不会返回任何内容,因此当您执行print(print_between(start + 1,stop))时,它会打印None,因为该函数会返回None

替换

print(print_between(start + 1,stop))

print_between(start + 1,stop)

另外,请确保您的功能名称为print_between而不是print_numbers

快速查看DEMO

答案 1 :(得分:2)

函数的默认返回值为None。你不需要打印它。

def print_numbers(start,stop):
    if start == stop:
        print(start)
    else:
        print(start)
        print_between(start + 1,stop)