Python:如何倒计时一个数字,并将其附加到列表中

1 投票
3 回答
5304 浏览
提问于 2025-04-18 10:12

这是我尝试制作一个倒计时的代码,所有的数字都会被添加到一个列表里。

timeleft = 3
num1 = 24 - timeleft
mylist = []


def countdown():
    while num1 != 0:
          num1 -= 1
          mylist.append(num1)

countdown()

这是我正在制作的一个日程安排应用程序的小部分。

3 个回答

0
def countdown(time_left):
    return [x for x in range(24 - time_left, -1, -1)]
>>> countdown(20)
[4, 3, 2, 1, 0]
>>> countdown(15)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> 

测试:

0

在Python 2中,只需要返回range的调用结果,这样就会得到一个列表:

def countdown2(x, y=0):
    return range(x, y-1, -1)

在Python 3中,需要把range转换成一个列表:

def countdown2(x, y=0):
    return list(range(x, y-1, -1)) 

如果想要真正地往一个列表里添加内容:

def countdown(x, y=0):
    '''countdown from x to y, return list'''
    l = []
    for i in range(x, y-1, -1): # Python 2, use xrange
        l.append(i)
    return l

不过在这里,直接使用列表会是更标准的方法,而不是使用列表推导式。

1

与其使用全局变量,我会写一个叫做 countdown 的函数,这个函数接受一个 start 参数,然后返回一个像这样的 list

def countdown(start):
    return list(range(start,0,-1))

示例:

timeleft = 3
num1 = 24 - timeleft
cd = countdown(num1)
print(cd) # [21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

如果你想要倒数到零,可以使用 range(start,-1,-1)

撰写回答