带两个参数的倒计时函数

0 投票
3 回答
3793 浏览
提问于 2025-04-18 16:30

我正在尝试创建一个倒计时的函数,这个函数有两个参数,并且除了可以使用range(如果需要的话),我不想用任何内置的函数。我只想用循环来实现。

这个函数会根据给定的参数进行倒计时。例如,如果我输入countDown(10, 2),那么它会从10开始倒计时,每次减去2,并且不打印出小于1的数字。所以输出会是这样的:

>>>countdown(10,2)
       10
       8
       6
       4
       2
       Blastoff!

我知道怎么写一个类似的倒计时代码,只用一个参数,代码是:

def countdown(n):
  if n == 0: 
     print "Blastoff!" 
  else: 
     print n 
     countdown(n-1)

但是我在用循环来实现上面提到的两个参数的条件时遇到了困难。

3 个回答

0
# Recursive method with 2 parameters    
def countdown (n, step):
    if n <= 0:
        print "Blastoff!"
    else:
        print n
        countdown (n-step, step)

def main():
    countdown (10, 2)

main()

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

2

这段代码应该能帮到你:

def countdown(n, m):
  if n <= 0: 
     print "Blastoff!" 
  else: 
     print n 
     countdown(n - m, m)   #reduce m from n and recursive call to countdown

使用while循环:

def countdown(n, m):
  while n > 0:
     print n
     n -= m

  print "Blastoff!" 
2

这里有一个简单的版本,使用了一个非递归的循环:

def countdown(n, m):
    for i in range(n, 0, -m):
        print i
    print "Blastoff!"

它是怎么工作的:

在Python中,range这个函数可以接收最多三个参数:起始值、结束值和步长。也就是说,range(n, 0, -m)是从n开始往下数,直到0之前停止,步长是-m。你可以在Python命令行中看到这个效果。只需在命令提示符下输入python,你会看到>>>的提示符。然后输入命令range(10, 0, -2)并按回车:

>>> range(10, 0, -2)
[10, 8, 6, 4, 2]

当你输入这个命令后,Python会返回[10, 8, 6, 4, 2],这就是range返回的值。它是一个数字列表。

for循环会遍历range(n, 0, -m)返回的每一个值,并将其打印出来。你在命令行中也可以看到这个过程:

>>> for i in range(10, 0, -2): print i
... 
10
8
6
4
2

当我们完成了对range返回值的循环后,我们打印Blastoff!,这个函数就完成了。

撰写回答