数到零然后向上计数

时间:2015-02-09 19:12:51

标签: python

由于我对python和编程相当新,我有一个非常基本的问题。我想创建一个迭代函数和一个执行此操作的递归函数:

bounce(4)

4 3 2 1 0 1 2 3 4

我知道这很简单,但任何帮助都会受到赞赏。

我目前的代码如下:

def bounce1(n):
    if n==0:
        print "0",
    else:
        print n,
        bounce1(n-1)

def bounce2(n):
    if n>=1:
        bounce2(n-1)
        print n

def bounce(n):
    bounce1(n)
    bounce2(n)

2 个答案:

答案 0 :(得分:2)

迭代实现:

>>> def bounce(num):
...     limit, delta = num + 1, -1
...     while(num != limit):
...         print num
...         num += delta
...         if num == 0:
...             delta = 1

递归实施:

>>> def bounce(num):
...     print num
...     if num: 
...         bounce(num - 1)
...         print num
...         
... 

两种情况下的输出:

>>> bounce(4)
4
3
2
1
0
1
2
3
4

答案 1 :(得分:1)

如果你可以使用range,我会在Python 2.7中这样做:

f = lambda x : map(abs, range(-x,x+1))
for x in f(4):
    print x,