用Python 3制作计时器

2024-05-13 21:54:43 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我试着用Python做一个倒计时。但是,我发现很难用下一个最低的数字替换当前的打印数字。例如,30将被打印,然后数字29将替换它,然后28将替换它等等。

def timer():
# I haven't made the counting down yet(sorry)
for i in range(30):
  print(i, end = '\r')

如果有人能帮我,那就太好了。


Tags: theinfordefrange数字yetdown
2条回答

关于你的问题标题,我想你需要倒计时,所以这里是我的代码来帮助你。也许这就是你的问题答案:

import time
hour = int(input('Enter any amount of hours you want -+==> '))
minute = int(input('Enter any amount of minutes you want -+==> '))
second = int(input('Enter any amount of seconds you want -+==> '))
time = hour*10800 + minute*3600 + second*60
print('{}:{}:{}'.format(hour,minute,second))
while time > 0:
   time = time - 1
   seconds = (time // 60) % 60
   minutes = (time // 3600)
   hours = (time // 10800)
   print('Time Left -+==> ',hours,':',minutes,':',seconds,)
if time == 0:
   print('Time Is Over!')

编辑:

import os # For screen clear command
import time # For timer

hour = int(input('Enter any amount of hours you want -+==> '))
minute = int(input('Enter any amount of minutes you want -+==> '))
second = int(input('Enter any amount of seconds you want -+==> '))
time = hour*10800 + minute*3600 + second*60
print('{}:{}:{}'.format(hour,minute,second))
while time > 0:
   os.system("{}") # Replace "{}" as "CLS" for windows or "CLEAR" for other.
   time = time - 1
   seconds = (time // 60) % 60
   minutes = (time // 3600)
   hours = (time // 10800)
   print('Time Left -+==> ',hours,':',minutes,':',seconds,)
if time == 0:
   os.system("{}") # Replace "{}" as "CLS" for windows or "CLEAR" for other. 
   print('Time Is Over!')

必须将range函数及其所有参数一起使用。

range(start, stop[, step])

This is a versatile function to create lists containing arithmetic progressions. It is most often used in for loops. The arguments must be plain integers. If the step argument is omitted, it defaults to 1. If the start argument is omitted, it defaults to 0. The full form returns a list of plain integers [start, start + step, start + 2 * step, ...]. If step is positive, the last element is the largest start + i * step less than stop; if step is negative, the last element is the smallest start + i * step greater than stop. step must not be zero (or else ValueError is raised)

如果要替换,一个好的选项是使用回车:“\r”并将打印端"\n"更改为""

import time

for x in range(30, 0, -1):
    print("\r %d" % x, end="")
    time.sleep(1)

相关问题 更多 >