Python:如何倒计时一个数字,并将其附加到列表中
这是我尝试制作一个倒计时的代码,所有的数字都会被添加到一个列表里。
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)
。